2015-07-18 19 views
13

In Auth0 können Sie refresh tokens verwenden. In dieser Verbindung können wir viele zurückgegebenen Parameter sehen:Was ist der Unterschied zwischen id_token und access_token in Auth0

lock.showSignin({ 
    authParams: { 
    scope: 'openid offline_access' 
    } 
}, function (err, profile, id_token, access_token, state, refresh_token) { 
    // store refresh_token 
}); 

Apparently, access_tokens verwendet werden können, um Benutzerprofildaten abrufen. Aber das scheint für Oauth spezifisch zu sein, und ich dachte, auth0 benutzt openid?

Was ist der Unterschied zwischen id_token und access_token?

+0

Auth0 Dokumentation hat einen guten Überblick über ihre (vielen) Token https://auth0.com/docs/tokens – Jason

Antwort

15

OpenID Connect baut auf OAuth2 auf.

  • Ein access_token ist nützlich, bestimmte APIs in Auth0 zu nennen (z.B. /userinfo) oder eine API Sie in Auth0 definieren.
  • Ein id_token ist ein JWT und stellt den angemeldeten Benutzer dar. Es wird oft von Ihrer App verwendet.
  • Ein refresh_token (nur von einer mobilen/Desktop-App verwendet werden) läuft nicht ab (aber ist widerrufbar) und es ermöglicht Ihnen, frisch geprägt access_tokens und id_token zu erhalten.
+5

'A refresh_token (nur durch eine mobile/Desktop-Anwendung verwendet werden)' Können Sie erklären, ? Es sieht so aus, als ob andere selbst bei Web-Apps die Verwendung von Aktualisierungstoken vorschreiben: http://stackoverflow.com/questions/26739167/jwt-json-web-token-automatic-prolongation-of-expiration. –

+0

Laut Auth2.0, ein Refresh-Token hat Ablauf, aber es lebt viel länger als das security_token. (Das ist in OpenId möglicherweise nicht richtig). Ein Refresh-Token ist optional und es liegt an der STS, es zu senden oder nicht. Bei impliziten Grants wird es jedoch definitiv nicht gesendet, da dies riskant ist, aber in der Autorisierung ist die Code-Erteilung optional. – Assil