【问题标题】:OAUth 2 Resource Owner Password Grant Type for Javascript clientJavascript 客户端的 OAUth 2 资源所有者密码授予类型
【发布时间】:2015-04-01 20:50:17
【问题描述】:

我正在开发一个宁静的网络服务和一个基于角度的应用程序来访问我的网络服务。由于两者都是我开发的,我决定实现 OAuth 2 密码授权类型。(我们正在实现自己的 OAuth 服务器)。我选择正确的资助类型是否正确?

现在我对使用刷新令牌感到困惑,因为它不能安全地存储在浏览器中,如果它被盗,它可以用来生成黑客想要的任意数量的访问令牌。

出于同样的原因,我不能使用长期存在的访问令牌,这违背了访问令牌的目的。

如果我使用短期访问令牌(例如 60 分钟)并且不使用刷新令牌,那么我可能需要要求用户每 1 小时登录一次,这对用户来说会很烦人。

有没有更好的方法来处理这个问题,还是我在流程中遗漏了什么?

我也可能使用隐式授权,但我相信问题是一样的。

【问题讨论】:

    标签: oauth oauth-2.0


    【解决方案1】:

    由于您控制所有 3 个实体(客户端、资源服务器和授权服务器),因此可以使用资源所有者密码凭据授权类型,尽管使用隐式授权类型可以让您升级身份验证方法(s ) 为您的用户提供,而无需修改您的客户端来处理新的身份验证类型。

    您可以返回一个刷新令牌并将其存储在会话存储 (window.sessionStorage) 中。

    可以在此处找到有关令牌和存储替代品的更多好东西:https://auth0.com/blog/2014/01/27/ten-things-you-should-know-about-tokens-and-cookies/

    【讨论】:

    • 自己编写了 3 个实体并没有改变客户端可以暴露秘密事物的事实。看到这个alexbilbie.com/2014/11/oauth-and-javascript
    • 这是一个不同的问题;由于那篇文章中提到的原因,Javascript 客户端无论如何都是公共客户端。
    猜你喜欢
    • 2016-12-31
    • 2014-07-09
    • 1970-01-01
    • 2016-03-03
    • 2013-11-21
    • 2019-12-08
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    相关资源
    最近更新 更多