我创建了一个facebook omniauth登录,但身份验证似乎不起作用。
首次登录后,网页更改为Facebook网页,似乎可以正常工作,但重定向由于某种原因返回到我的网页应用登录页面。当我再次点击登录按钮时,我的网络应用程序不会更改网页,而是停留在那里。
但是,我发现我的网址已更改为http://localhost:3000/users/sign_up#= 在我点击注册按钮后,我想知道我的应用程序发生了什么。
<%= link_to "Facebook sign in", user_facebook_omniauth_authorize_path %>
是我登录的代码。
我的user.rb是
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauthable, :omniauth_providers => [:facebook]
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
# If you are using confirmable and the provider(s) you use validate emails,
# uncomment the line below to skip the confirmation emails.
# user.skip_confirmation!
end
end
end
routes.rb是
Rails.application.routes.draw do
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
devise_for :admins, path: 'admins'
root 'home#index'
get '/' => "courses#index", as: :user_root
resources :courses, :lessons
end
我的服务器日志是:
Started GET "/users/auth/facebook" for 127.0.0.1 at 2017-07-19 12:23:43 +0900
I, [2017-07-19T12:23:43.560740 #16988] INFO -- omniauth: (facebook) Request phase initiated.
Started GET "/users/auth/facebook" for 127.0.0.1 at 2017-07-19 12:23:43 +0900
I, [2017-07-19T12:23:43.693460 #16988] INFO -- omniauth: (facebook) Request phase initiated.
Started GET "/users/auth/facebook/callback?code=AQD_R5wWm1l62YTZ0RwwruKmlCSoSHtUseMhG_aah_xpDLOWuupBN8giG6qVfIhHvfy8g-gfNtT4rAbZ8AfoWqgfNKRhzjihjibgyPayVlpvWPd_OGUY_q52B_K6w5YK-COk5wSHbyeYxc04MzQsXknD7x7oHbHHdF51I9QLkyKY_NwXFYVwadlZKUJgG_4mOm-bw76QDqLVbVDO8M7APKvmk3Aw4fyRj-71R2GsnVYN_jrDr1sz4zf47Ac5CQTa6R5480m59fZtgpups3W1p4cDIsAnZKZiXuOuFZQ_knIDEKrosH4MmSBRqmlKt900nb_VDnVAhY3WFx8lHIgERkSz&state=e45fcf66f73f4c827eae9dfba1130744b91262fd0422486a" for 127.0.0.1 at 2017-07-19 12:23:43 +0900
I, [2017-07-19T12:23:43.848249 #16988] INFO -- omniauth: (facebook) Callback phase initiated.
Processing by Users::OmniauthCallbacksController#facebook as HTML
Parameters: {"code"=>"AQD_R5wWm1l62YTZ0RwwruKmlCSoSHtUseMhG_aah_xpDLOWuupBN8giG6qVfIhHvfy8g-gfNtT4rAbZ8AfoWqgfNKRhzjihjibgyPayVlpvWPd_OGUY_q52B_K6w5YK-COk5wSHbyeYxc04MzQsXknD7x7oHbHHdF51I9QLkyKY_NwXFYVwadlZKUJgG_4mOm-bw76QDqLVbVDO8M7APKvmk3Aw4fyRj-71R2GsnVYN_jrDr1sz4zf47Ac5CQTa6R5480m59fZtgpups3W1p4cDIsAnZKZiXuOuFZQ_knIDEKrosH4MmSBRqmlKt900nb_VDnVAhY3WFx8lHIgERkSz", "state"=>"e45fcf66f73f4c827eae9dfba1130744b91262fd0422486a"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."provider" = ? AND "users"."uid" = ? ORDER BY "users"."id" ASC LIMIT ? [["provider", "facebook"], ["uid", "1332495676858509"], ["LIMIT", 1]]
(0.1ms) begin transaction
(0.0ms) rollback transaction
Redirected to http://localhost:3000/users/sign_up
Completed 302 Found in 140ms (ActiveRecord: 0.5ms)
有什么建议吗?