Ste*_*aul 3 rest jwt auth0 asp.net-core
我有一个angular2前端,它使用Auth0进行身份验证,后端使用.net核心应用程序.所有这些都在强制执行安全的API调用.
在后端识别经过身份验证的用户的最佳方法是什么?我可以想到这样做的一个相当笨拙的方法是公开一个'setUserToken'api调用,它允许我将用户ID连接到以下任一项:
代币 var bearerToken = Request.Headers["Authorization"].ToString()
社交ID var socialId = User.Claims.Where(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").First().Value
这样,随后的API调用,我可以简单地findUserByToken()或findUserBySocialProviderOpenId()
我确定我错过了一个更明显的解决方案来解决这个问题.任何指导将不胜感激.
所述sub的JWT的要求总是由Auth0产生和将包含用户的识别符,独立于被用于登录身份提供者.
https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#rfc.section.4.1.2
该子(主题)索赔确定了作为JWT主题的委托人.JWT中的声明通常是关于该主题的声明.主题值必须在发行者的上下文中作为本地唯一的范围,或者是全局唯一的.该权利要求的处理通常是特定于应用的.子值是包含StringOrURI值的区分大小写的字符串.使用此声明是可选的.
在大多数情况下,您的后端API应该只是Auth0访问令牌的使用者,而不需要公开与身份验证相关的任何端点.
| 归档时间: |
|
| 查看次数: |
1688 次 |
| 最近记录: |