【发布时间】:2018-01-29 04:17:30
【问题描述】:
我对 OAuth 非常陌生,我打算为仅前端(html 和 JavaScript)Web 应用程序实现一个 API,该应用程序具有使用 laravel Passport 的登录功能。前端应用程序和 API 服务器都将驻留在不同的服务器上。我已经阅读了很多关于不同赠款的信息,但仍然对哪些最适合我打算做的事情感到困惑。访问令牌是否会存储在前端(使用本地存储或 cookie)?我只是对从哪里开始感到困惑。
【问题讨论】:
我对 OAuth 非常陌生,我打算为仅前端(html 和 JavaScript)Web 应用程序实现一个 API,该应用程序具有使用 laravel Passport 的登录功能。前端应用程序和 API 服务器都将驻留在不同的服务器上。我已经阅读了很多关于不同赠款的信息,但仍然对哪些最适合我打算做的事情感到困惑。访问令牌是否会存储在前端(使用本地存储或 cookie)?我只是对从哪里开始感到困惑。
【问题讨论】:
我建议使用为浏览器应用程序设计的隐式授权。您可以将令牌保存在 sessionStorage 中(如果您想在浏览器选项卡之间共享它们,则可以保存在 localStorage 中)。 OAuth2 令牌应作为 Authorization: Bearer tokenstring HTTP 请求标头发送,因此 cookie 不是存储它们的好地方。
您可以使用两种令牌类型:
/token 端点以获取有关其有效性以及对其进行身份验证的人的信息。机器人令牌类型的生命周期有限,您必须在原始令牌到期之前获取新令牌(使用&prompt=none 请求,请参阅OpenID Connect RFC)。
【讨论】: