最好的OAuth授权是用于开发仅限前端的应用程序

时间:2018-01-27 00:48:27

标签: php laravel-5 oauth-2.0

我是OAuth的新手,我打算使用laravel Passport为只有前端(html和JavaScript)的Web应用程序实现api,并具有登录功能。前端应用程序和API服务器都将驻留在不同的服务器上。我已经阅读了很多关于不同拨款的内容,但仍然对哪种内容最适合我打算做的事情感到困惑。访问令牌是否将存储在前端(使用本地存储或cookie)?我只是对从哪里开始感到困惑。

1 个答案:

答案 0 :(得分:0)

我建议使用专为浏览器应用程序设计的隐式授权。您可以在sessionStorage(或者如果您想在浏览器选项卡之间共享它们)中保留令牌。 OAuth2令牌应作为Authorization: Bearer tokenstring HTTP请求标头发送,因此Cookie不是存储它们的好地方。

您可以使用两种令牌类型:

  • 访问令牌 - 如果您要使用令牌进行身份验证,则访问令牌持有范围 - 信息允许客户端代表经过身份验证的人员执行哪些操作。访问令牌通常只是随机字符串,因此要对其进行验证,后端需要请求/token端点获取有关其有效性以及对其进行身份验证的人员的信息。
  • 来自OpenID Connect的
  • ID token(OAuth2扩展) - 在JWT格式中,ID令牌包含有关对其进行身份验证的人员的信息,可以脱机验证,但不能用于授权 - 它们不包含任何范围

Bot令牌类型的生命周期有限,您必须在原始令牌到期之前获取新令牌(使用&prompt=none请求请参阅OpenID Connect RFC)。