【问题标题】:What is the best is the best OAuth grant to use in developing a front-end only app什么是最好的是用于开发仅前端应用程序的最佳 OAuth 授权
【发布时间】:2018-01-29 04:17:30
【问题描述】:

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

【问题讨论】:

    标签: php laravel-5 oauth-2.0


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢 Jan,您的回复很到位。我最大的挑战是不知道在哪里存储令牌,因为我认为 localStorage 的轻松扩散将是一个挫折。再次感谢。
    猜你喜欢
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2016-03-26
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多