gpt4 book ai didi

facebook - Rails Devise+Omniauth Facebook 重定向到用户/注册失败

转载 作者:行者123 更新时间:2023-12-04 16:38:42 25 4
gpt4 key购买 nike

因此,我使用 Rails 4、ominiauth 和 facebook ominauth 但是当我尝试登录时总是重定向到 users/sign_up in devise 以创建一个新用户,在我的控制台中出现这个:

Started GET "/users/auth/facebook/callback?code=AQCGbVuW0AV8d4pfkPWHjSWiM6pLY03rmQwHECQfhZiH2E5wJT8OpeV64SYvCAjsf3nVJrpgeUVFn5CDjUuYoOjbY078fQPwIktgsUh5E7TFYpS3_KLLfhuEEd1ilzT4LHw5SPV78bpHe3-5wLEip2pAkQ0u4M3AUBooNvJyAGLaQqBzyG3NHYTa3DembMOXAgqeZbZubrWLBk6NPoVmUg6-mPp1glmPoUbyZ2S1fE2ynOhbwCqMk-n8sqCmlN9j8SSG6plxZzCUcoWMOEchkYUMBi6TW2UOEamVRSQZcOecxAq8fn0VG7Z_gwDk1VcOTV8&state=58dc14ece55d93513bd89dc06590f0f6cb2d8568c2aac35a" for 127.0.0.1 at 2013-08-08 23:02:50 -0300
I, [2013-08-08T23:02:50.902450 #3121] INFO -- omniauth: (facebook) Callback phase initiated.
Processing by Users::OmniauthCallbacksController#facebook as HTML
Parameters: {"code"=>"AQCGbVuW0AV8d4pfkPWHjSWiM6pLY03rmQwHECQfhZiH2E5wJT8OpeV64SYvCAjsf3nVJrpgeUVFn5CDjUuYoOjbY078fQPwIktgsUh5E7TFYpS3_KLLfhuEEd1ilzT4LHw5SPV78bpHe3-5wLEip2pAkQ0u4M3AUBooNvJyAGLaQqBzyG3NHYTa3DembMOXAgqeZbZubrWLBk6NPoVmUg6-mPp1glmPoUbyZ2S1fE2ynOhbwCqMk-n8sqCmlN9j8SSG6plxZzCUcoWMOEchkYUMBi6TW2UOEamVRSQZcOecxAq8fn0VG7Z_gwDk1VcOTV8", "state"=>"58dc14ece55d93513bd89dc06590f0f6cb2d8568c2aac35a"}
Cart Load (0.3ms) SELECT `carts`.* FROM `carts` WHERE `carts`.`id` = 81 LIMIT 1
User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`provider` = 'facebook' AND `users`.`uid` = '100003808270452' ORDER BY `users`.`id` ASC LIMIT 1
(0.2ms) BEGIN
User Exists (0.3ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'mail@mail.com' LIMIT 1
(0.3ms) ROLLBACK
Redirected to http://0.0.0.0:3000/users/sign_up

我知道失败了,但我不知道是因为什么,他搜索并找到了用户,但因为什么没有返回成功?

Action 是:

  def facebook
# You need to implement the method below in your model (e.g. app/models/user.rb)
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

if @user.persisted?
sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end

如果有人能帮助我对我来说非常重要,非常感谢。

最佳答案

您在调用 Auth 时没有指定两个 URL。1)成功登录成功后将重定向成功参数2) 如果发生任何不良情况,则报错。

在使用您的域名创建 FB 应用程序时,您必须指定这些。

callback_url / callback_path

是上面的变量名称,您可以通过调用传递该名称。

引用 https://github.com/mkdynamic/omniauth-facebook

希望这对您有所帮助。

关于facebook - Rails Devise+Omniauth Facebook 重定向到用户/注册失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com