项目

账户模块

账户模块实现了基础认证功能,包括登录注册忘记密码账户管理

本模块基于微软Identity库身份模块构建。通过与IdentityServer(基于IdentityServer模块)和OpenIddict(基于OpenIddict模块)的集成,提供单点登录、访问控制等高级认证功能。

安装方式

本模块以预安装包(NuGet/NPM包)形式提供。您可以选择持续使用包版本以便轻松获取更新,也可将源代码集成至您的解决方案中(参见 get-source CLI命令)进行自定义开发。

源代码

模块源代码可在此处访问:GitHub仓库。代码采用MIT许可协议,可自由使用和定制。

用户界面

本节介绍模块提供的主要页面功能。

登录页

/Account/Login页面提供用户登录功能。

账户模块登录界面

配置后将会显示社交/外部登录按钮,详见下文社交/外部登录章节。注册和忘记密码链接将跳转至后续章节说明的对应页面。

注册页

/Account/Register页面提供新用户注册功能。

账户模块注册界面

密码找回与重置

/Account/ForgotPassword页面提供向用户邮箱发送密码重置链接的功能。用户点击链接后可设置新密码。

账户模块忘记密码界面

账户管理

/Account/Manage页面用于修改用户密码和个人信息。

账户模块管理界面

OpenIddict集成

Volo.Abp.Account.Web.OpenIddict包提供与OpenIddict的集成。该包已预装在 应用启动模板中,详见OpenIddict模块文档。

IdentityServer集成

Volo.Abp.Account.Web.IdentityServer包提供与IdentityServer的集成。该包已预装在应用启动模板中,详见IdentityServer模块文档。

社交/外部登录

账户模块已预设支持社交/外部登录功能。您可参照ASP.NET Core文档为应用添加社交/外部登录提供商。

示例:Facebook认证

参照ASP.NET Core Facebook集成文档为应用添加Facebook登录支持。

添加NuGet包

Microsoft.AspNetCore.Authentication.Facebook包添加至项目。根据架构设计,可能需要添加到.Web.IdentityServer(分层架构)或.Host项目。

配置提供商

模块ConfigureServices方法中使用.AddFacebook(...)扩展方法配置客户端:

context.Services.AddAuthentication()
    .AddFacebook(facebook =>
    {
        facebook.AppId = "...";
        facebook.AppSecret = "...";
        facebook.Scope.Add("email");
        facebook.Scope.Add("public_profile");
    });

建议使用appsettings.json或ASP.NET Core用户密钥系统存储凭证信息,而非硬编码值。请参阅微软官方文档了解用户密钥使用方法。

在本文档中