授权及验证

在我们的应用中,我们通常通过以下方式进行身份验证:

  • JWT:适用于前后端分离的应用,前端通过携带JWT令牌来验证身份。
  • IdentityServer:适用于需要更复杂授权和验证的应用,提供了OAuth2和OpenID Connect等协议支持。
  • Cookie:适用于传统的Web应用,使用Cookie来存储用户的登录状态。
  • 第三方登录:通过OAuth2等协议集成第三方登录服务,如使用Google、Microsoft账号登录。
  • 无密码登录:通过发送验证码等方式进行身份验证,无需密码。

我们来简单分析一下不同方式在用户体系和程序实现上的差异。

JWT

JWT的实现核心是生成和验证令牌。通常在用户登录时,服务器会生成一个JWT令牌,并将其返回给客户端。客户端在后续的请求中携带该令牌,服务器通过验证令牌来确认用户身份。

它的特点:

  • 灵活,不需要你预设数据库表结构。

IdentityServer

IdentityServer是一个完整的身份认证和授权框架,支持OAuth2和OpenID Connect等协议。它提供了丰富的功能,如多租户支持、客户端凭据、资源服务器等。

无密码登录

在.NET10 中,我们可以使用PassKey来实现无密码登录。PassKey是一种基于WebAuthn的身份验证方式,允许用户使用生物识别或设备认证来登录,而无需输入密码。

第三方登录

模板支持

在配置文件中的Authentication节点下,你可以配置不同的身份验证方式。模板默认提供了以下几种身份验证方式的支持:

  • JWT:通过JwtBearer进行身份验证。
  • OAuth2:通过IdentityServer进行身份验证。
  • Microsoft:支持第三方登录,如Microsoft账号登录。
  • Google:支持第三方登录,如Google账号登录。

当你的配置中包含这些身份验证方式时,并具有有效的配置时,模板会自动为你添加相应的服务和配置。