如何使用 auth0 jwt 识别用户
How to identify a user with auth0 jwt
我有一个 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()
我确定我错过了一个更明显的解决这个问题的方法。任何指导将不胜感激。
JWT 的 sub
声明始终由 Auth0 生成,并将包含用户的标识符,独立于用于登录的身份提供者。
https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#rfc.section.4.1.2
The sub (subject) claim identifies the principal that is the subject of the JWT. The claims in a JWT are normally statements about the subject. The subject value MUST either be scoped to be locally unique in the context of the issuer or be globally unique. The processing of this claim is generally application specific. The sub value is a case-sensitive string containing a StringOrURI value. Use of this claim is OPTIONAL.
在大多数情况下,您的后端 API 应该只是 Auth0 访问令牌的使用者,不需要公开任何与身份验证相关的端点。
我有一个 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()
我确定我错过了一个更明显的解决这个问题的方法。任何指导将不胜感激。
JWT 的 sub
声明始终由 Auth0 生成,并将包含用户的标识符,独立于用于登录的身份提供者。
https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#rfc.section.4.1.2
The sub (subject) claim identifies the principal that is the subject of the JWT. The claims in a JWT are normally statements about the subject. The subject value MUST either be scoped to be locally unique in the context of the issuer or be globally unique. The processing of this claim is generally application specific. The sub value is a case-sensitive string containing a StringOrURI value. Use of this claim is OPTIONAL.
在大多数情况下,您的后端 API 应该只是 Auth0 访问令牌的使用者,不需要公开任何与身份验证相关的端点。