未发送刷新令牌



我正在使用一个gem 'omniauth-google-oauth2'

#initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider(:google_oauth2, 'client_id', 'client_secret') 
end

然后

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def google_oauth2    
    @user = User.find_for_google_oauth2(request.env['omniauth.auth'], current_user)
    #...

然后我得到了这个

request.env['omniauth.auth'][:credentials]
=> {"token"=> "some token", "expires_at"=>1421821319, "expires"=>true}

我想知道,刷新令牌在哪里?根据文档

access_type:默认为脱机,因此发送刷新令牌 当用户不在浏览器时使用。可以设置为 在线。

但它没有发送,是吗?

我猜你指的是文档的 omniauth-google-oauth2 README。它还说"如果您需要刷新令牌,Google还要求您指定选项提示:"同意",这不是默认值"。因此,请尝试将提示选项传递给提供程序方法。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider(:google_oauth2, 'client_id', 'client_secret', { prompt: 'consent' })
end

相关内容

  • 没有找到相关文章

最新更新