我在使用spree(ruby-on-rails)构建的应用程序中使用gem“omniauth-google-oauth2”来集成Google plus登录到我们的网站。我在这里得到一个非常奇怪的错误,它工作正常发展(本地主机) 但在生产中我收到此错误
“AUTH / google_oauth2 /回调状态= 35ad3c2e3f8327a5b96df7ce7e2439a77b90dfebc41f8463&安培;代码= 4 / P5L-nug7FU3P8lfnSHNF8Uy_tYXcLyqc0bnABoGo0EI#”。
为了整合Google +,我已经完成了以下
a。)我在谷歌开发者控制台中创建了一个WebApplication应用程序,添加了必要的javascript源并重定向了URL
b。)我在我的coonfig文件中添加了客户端ID,秘密 OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth :: Builder
提供者:google_oauth2,'my cient id','secret'
端
c。)我添加了一条路线'auth / google_oauth2 / callback'
我在这里安静了一段时间。
答案 0 :(得分:0)
我为很多应用做了google-omniauth-oauth2。
根据我的经验,我会给你一些提示。
一些可能的原因可能是
在omniauth.rb
中尝试以下操作Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, 'GOOGLE_CLIENT_ID', 'GOOGLE_CLIENT_SECRET
{
:access_type => 'offline',
:prompt => 'consent'
}
以下是我的会话#create方法供您参考
def create
auth = request.env['omniauth.auth']
@user = User.find_by_email(auth.info.email) || User.create_with_omniauth(auth)
if !@user.country
@user.country = request.location.country
end
@user.update_tokens auth
reset_session
session[:user_id] = @user.id
redirect_to new_video_path, :notice => 'Signed In!'
end
如需更多帮助,请查看this链接。