首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >request.env['omniauth.oauth']返回零

request.env['omniauth.oauth']返回零
EN

Stack Overflow用户
提问于 2020-09-04 09:11:52
回答 1查看 167关注 0票数 1

我正在使用omniauth-google-oauth2 gem授权谷歌账户,并获得授权代码,但即使在将gem升级到最新版本之后,也可以将request.env'omniauth.auth'作为0

代码语言:javascript
复制
ruby_version: 2.4.9
rails _version: 4.2.8

我的Gemfile

代码语言:javascript
复制
gem 'omniauth', '1.9.1'
gem 'omniauth-oauth2', '1.7.0'
gem 'omniauth-google-oauth2', '0.8.0'

omniauth.rb

代码语言:javascript
复制
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, 'MY_GOOGLE_CLIENT_ID', 'MY_GOOGLE_SECRET',  {
    scope: 'email, profile',
    access_type: "offline",
    approval_prompt: "force",
    prompt: 'select_account',
    redirect_uri: 'http://localhost:3000/auth/google-oauth2/callback'
  }

结束

routes.rb

代码语言:javascript
复制
get 'auth/google_oauth2/callback', to: 'social_accounts#create_account'

socual_accounts_controller.rb

代码语言:javascript
复制
class Api::V1::SocialAccountsController < ApplicationController

def create_account
  request_params = request.env["omniauth.auth"] # gives nil
end

end

是否有可能从授权代码中获取access_token和refresh_token?这也会有很大帮助

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-08-31 22:08:49

我最近在我们的一个应用程序中遇到了这个问题,所以对于后代来说,…

检查oauth2在您的Gemfile.lock中的版本。在bundle update期间,我们的更新从1.4.10更新到2.0.5。我们尝试升级到最新版本(v2.0.7),并在2上降级到第一个标记(v2.0.0),但没有成功。

oauth2 将锁定到1.4.10,解决了request.env["omniauth.auth"] to nil的问题。

有一个很多变化进入了2.0.0,所以很难说是哪一个打破了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63738217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档