从auth0 session localStorage

时间:2018-02-25 14:50:57

标签: vue.js auth0

我正在项目中实施auth0登录,并尽可能快地使用托管登录页面。在auth0 vue文档之后,我已经快速启动并运行,我可以登录并注销用户。

现在,我尝试创建一个路径为user/:id的用户个人资料页面。对于:id部分,我想使用用户个人资料的user_id,但我在理解获取它的最佳方式时遇到了问题。我意识到我可以使用auth0 api用户端点,但我不确定这是否正确。每次用户点击其个人资料时,我是否真的需要对用户端点进行API调用?有没有更好的方法来获取user_id,可能来自登录时在localStorage中设置的id_token

更好的是,有没有办法获得实际的用户ID?我知道如果我使用自己的数据库设置我自己的登录,我会有一个自动递增ID,我将其用于用户ID。 Auth0似乎不太可能,或者我错了吗?

1 个答案:

答案 0 :(得分:1)

披露:我为Auth0工作。

在身份验证/授权结束时返回的idTokenJSON Web Token。此令牌包含Auth0 user_id作为sub(主题)声明(属性)。

如果您使用的是Auth0.js或我们的AuthService教程,Auth0.js将解码此令牌并将其作为idTokenPayload中的authResult对象提供给您。这可用于将用户标识为idTokenPayload.sub

您可以将此对象作为整体存储在localStorage中,或者只是解码您从localStorage获取的令牌。但请注意,您应该在从localStorage获取令牌后验证令牌。

为避免上述所有情况,您可以在每次应用程序引导时使用checkSession方法获取accessToken / idToken的新副本,并直接依赖它:)