【问题标题】:Can I have multiple (access_token, refresh_token) to serve the same user on different client/devices with doorkeeper?我可以有多个(access_token,refresh_token)来为不同客户端/设备上的同一个用户提供服务吗?
【发布时间】:2016-06-18 16:44:29
【问题描述】:

我正在保护一个仅支持 Rails api 的应用程序,我想通过 OAuth2(密码流)和Doorkeeper 来保护。忽略我找不到关于如何做到这一点的足够清晰的文档这一事实,我想到的用例是在多个设备/平台(例如 Android、iOS、浏览器)上有多个客户端并且它们都需要一个用户登录。我希望能够为每个新登录发布一个新的 (access_token, refresh_token) 对,并且它们都应该识别创建该对的用户。也就是说,如果 Alice 通过 Android 和 iOS 登录,Bob 通过两个浏览器登录,我想要一个记录如

| user_id | access_token | refresh_token | client_id        |
|---------|--------------|---------------|------------------|
| Alice   | a6d7f82h3hf  | d8f6g8d0e3    | Android-h3j4k5l6 |
| Alice   | 3j4k5j3l5k3  | 1hnrbtj5kc    | iOS-j2k35h3n     |
| Bob     | 513lkhbjkf3  | rhj2345bvj    | web-43nfm23      |
| Bob     | nbv234nbv65  | cbv124cr64    | web-gc62jh4      |

(数据完全组成)。有人可以提供一个直接的答案,并可能将我指向与此相关的文档、指南、教程吗?我知道我可以推出自己的身份验证系统来实现这个特定的用例,而且我过去也这样做过,但是有了这个,我希望 OAuth2 的灵活性能够在未来得到改进。

【问题讨论】:

    标签: ruby-on-rails asp.net-web-api oauth2 doorkeeper


    【解决方案1】:

    我正在从事类似的工作,我发现 link 对实施简单的密码策略很有帮助。使用 Doorkeeper,您将获得如下记录:

    • resource_owner_id(用户 ID)
    • 申请(授权申请)
    • 令牌
    • 刷新令牌
    • expires_in
    • revoked_at
    • created_at
    • 范围
    • previous_refresh_token

    因此您可以在不同的应用程序/客户端上为同一用户提供服务。

    现在我也遇到了 Rails 5 API 的一些问题,因为 Doorkeeper 使用视图来授予应用程序。有一个类似的问题#821,我解决了只是在config/application.rb处关闭api模式的问题。

    config.api_only = false
    

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2016-06-27
      • 2010-10-11
      相关资源
      最近更新 更多