ruby-on-rails - googleapi“oauth2/v4/token”没有返回“refresh_token”
问题描述
使用此代码时,我只得到 access_token 。
url = URI("https://www.googleapis.com/oauth2/v4/token")
secrets = {
code: params[:code],
client_id: Rails.application.secrets.google[:client_id],
client_secret: Rails.application.secrets.google[:client_secret],
grant_type: "authorization_code",
redirect_uri: Rails.application.secrets.front_end_domain
}
response = Net::HTTP.post_form(url, secrets)
json_response = JSON.parse(response.read_body)
如何更改代码以便我每次都能获得 refresh_token?
解决方案
要获得刷新令牌,您需要通过,
access_type: 'offline'
在客户端获取代码时,您是否收到了批准权限的弹出窗口?您需要确保access_type: 'offline'
在弹出窗口进行授权时传入客户端。除非通过,并且您同意弹出的权限,否则 Google 不会提供refresh_token
.