门卫密码grant_type -Token撤销密码更改(使用Devise)和刷新令牌方法

时间:2017-02-12 13:45:54

标签: ruby-on-rails ruby-on-rails-4 devise doorkeeper

我目前正在与Doorkeeper(+ Devise)合作开发Rails服务器和受信任的iOS应用程序。我有一个实现工作,但我对一些事情感到困惑。我已经阅读了这个维基:https://github.com/doorkeeper-gem/doorkeeper/wiki/Interacting-as-an-OAuth-client-with-Doorkeeper

当前流程:

  1. 用户使用iOS应用中的用户名和密码登录。这会发送到https://myserver.com/api/log_in
  2. 服务器使用Devise检查凭据并登录用户。然后它使用Doorkeeper::AccessToken.find_or_create_for()方法响应access_token。
  3. iOS应用会保存此令牌,并在Authorization:Bearer the_access_key中将其发送给所有未来的API调用
  4. 到目前为止一直很好(即以上是我的测试)。我的问题是:

    1. 刷新令牌 - iOS应用程序是否应该主动检查是否需要刷新(即比较access_token created_atexpires_in,然后根据此刷新的结果更新令牌) ,或者它应该只是尝试在401上刷新,如果刷新也获得400/401然后在iOS上停止并注销用户?
    2. 在其他位置更改密码并撤消令牌。如果用户在网站上更改了密码(使用Devise),则应撤销该用户的所有iOS应用程序令牌。刷新令牌也应该失败,并且用户提示再次登录iOS应用程序。我没有找到建议最佳实践的文档。从我的测试中,这不会在Doorkeeper中自动发生,并且access_token仍然有效。处理这种情况的最佳/正确方法是什么?
    3. 提前感谢您的时间。

0 个答案:

没有答案