Google Oauth2可自动续订令牌

时间:2016-07-15 17:34:20

标签: ruby-on-rails ruby google-oauth2 oauth2

我正在使用omniauth-google-oauth2 gem将Oauth2通过Google添加到我的Rails应用中。我根据宝石的自述文件设置了所有内容。当我点击我的应用中的授权按钮时,我会被引导到Google授权该应用。一旦我被发送回我的重定向路径,我会收到包含tokenrefresh_tokenexpires_at(不是expires_in)的数据哈希,但是{{{ 1}}总是等于expires_at。哈希看起来像这样:

Time.now.to_i

我想要做的是每次登录应用程序时以编程方式更新用户的令牌,而不强迫他们完成初始授权过程。我为Facebook设置了类似的令牌续订流程,但我无法弄清楚如何让这项工作适用于Google,因为令牌=> auth.credentials => { token: 'token', refresh_token: 'refresh_token', expires_at: 1468603958 expires: true } 时间已经到了。

我的问题分为两部分:

  1. expires_at的价值不应该在将来(例如从现在起1小时,或从现在起30天)?
  2. 如何使用我第一次授权应用时获得的expires_at以编程方式刷新令牌?我似乎无法在Ruby中找到关于如何执行此操作的单个示例。我想在我的应用中的refresh_token上设置一个方法来检查GeneralController模型的expires_at值,然后运行一些逻辑来更新令牌,但我无法想象如何更新令牌。鉴于我从Google获得的Identity值等于expires_at,这似乎也有问题。如果我使用该值,则会触发无限循环。
  3. 这是我想在伪代码中做的事情:

    Time.now.to_i

0 个答案:

没有答案