Javascript Auth0中的id\u令牌和access\u令牌有什么区别

Javascript Auth0中的id\u令牌和access\u令牌有什么区别,javascript,oauth,openid,jwt,auth0,Javascript,Oauth,Openid,Jwt,Auth0,在Auth0中,您可以使用。在这个链接中,我们可以看到许多返回的参数: lock.showSignin({ authParams: { scope: 'openid offline_access' } }, function (err, profile, id_token, access_token, state, refresh_token) { // store refresh_token }); 可用于检索用户配置文件数据。但这似乎是特定于oauth的,我认为auth

在Auth0中,您可以使用。在这个链接中,我们可以看到许多返回的参数:

lock.showSignin({
  authParams: {
    scope: 'openid offline_access'
  }
}, function (err, profile, id_token, access_token, state, refresh_token) {
  // store refresh_token
});
可用于检索用户配置文件数据。但这似乎是特定于oauth的,我认为auth0使用openid


id\u令牌
access\u令牌
之间有什么区别?

OpenID Connect构建在OAuth2之上

  • access\u令牌
    可用于调用Auth0中的某些API(例如
    /userinfo
    )或在Auth0中定义的API
  • id\u令牌是一个标记,代表登录用户。您的应用程序经常使用它
  • refresh\u令牌
    (仅用于移动/桌面应用程序)不会过期(但可以重新登录),它允许您获得新制作的
    access\u令牌
    id\u令牌
资源服务器(您的服务器端应用程序)只接受来自客户端的访问令牌。这是因为访问令牌用于授权对资源的访问<另一方面,strong>ID令牌用于身份验证。这是由包含最终用户信息的OpenID提供商授予的

访问令牌是应用程序用来代表用户发出API请求的东西。访问令牌表示特定应用程序访问用户数据特定部分的授权。访问令牌必须保密

刷新令牌的想法是,如果访问令牌受到破坏,因为它是短期的,那么攻击者滥用它的窗口有限。刷新令牌如果受到攻击,则毫无用处,因为攻击者除了需要刷新令牌外,还需要客户端id和密码才能获得访问令牌


刷新令牌的生存期由(AS)授权服务器决定-它们可能会过期、被吊销等。刷新令牌和访问令牌之间的区别在于访问群体:刷新令牌只返回授权服务器,访问令牌返回(RS)资源服务器

刷新令牌(仅用于移动/桌面应用程序)
您能解释一下吗?其他人似乎规定即使在web应用程序中也要使用刷新令牌:。根据Auth2.0,刷新令牌确实会过期,但其寿命比安全令牌长得多。(在OpenId中可能不是这样)。另外,刷新令牌是可选的,由STS决定是否发送。但是,在隐式授权中,它肯定不会被发送,因为这会有风险,但在授权码授权中,它是可选的。此外,access_令牌也可以是jwt。也可能包含作用域!有关更多详细信息,请参阅:Auth0文档很好地概述了它们的(许多)标记,如您的答案。我们正在使用谷歌的身份验证和ID令牌。因为ID令牌将在60分钟内过期,所以让用户每小时登录一次会很麻烦。但它们不提供自动刷新。有什么建议吗?