问题:
如何在 ASP.NET Core 中实现基于令牌的身份验证ASP.NET Core 应用程序,其中 AngularJS 客户端通过提供凭据来请求令牌,WebApi 验证用户并返回访问令牌?
答案:
1. Startup.cs 中的配置:
为 TokenAudience 和 TokenIssuer 创建常量。
为 JWT 签名密钥和 JwtSignInHandler 添加依赖注入服务。
配置 ASP .NET Core 使用 JWT Bearer 身份验证并指定令牌验证参数。
2.身份验证设置:
在需要身份验证的中间件之前使用 app.UseAuthentication()。
3.授权策略:
添加 AuthorizationPolicy 以指定需要 Bearer 令牌的控制器和操作。
4.构建令牌:
创建一个 JwtSignInHandler 类,其中包含构建 JWT 的方法,传入 ClaimsPrincipal。
在需要令牌的控制器中,使用 JwtSignInHandler 服务来基于主体创建令牌。
5.测试:
获取令牌并使用配置中的密钥在 jwt.io 上验证它。
.Net Core 3.1 更新注意事项:
请参阅 David Fowler 的示例应用程序以获取简化的实现JWT.
.Net Core 2 更新注意事项:
虽然 RSA 密钥不是必需的,但建议在分布式系统中使用它们。但是,如果分配责任,可以使用 SymmetricSecurityKey。
以上是如何使用 AngularJS 客户端在 ASP.NET Core 中实现基于令牌的身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!