Railscasts Simple OmniAuth http://railscasts.com/episodes/241-simple-omniauthに従って、Twitter ログインを作成しています。Twitter でサインインして新しいユーザーを作成しようとすると、次のメッセージが表示されます。
Validation failed: Password can't be blank, Name is not valid., Email can't be blank, Email is not valid.
更新ボタンを押すと、次のエラーが表示されます。
OAuth::Unauthorized 401 Unauthorized
既にコールバック URL を に設定していますhttp://127.0.0.1:3000/auth/twitter/callback
が、まだそのメッセージが表示されます。私はローカルホストでテストしています。
Hartl の railstutorial http://ruby.railstutorial.org/ruby-on-rails-tutorial-bookに基づいてユーザーをモデル化し、私の Web サイト プロジェクトでは、ユーザーがこれらのフィールドに入力する必要があります。
Railscast とは異なり、omniauth ログインを処理する新しいメソッドを作成しました。
sessions_controller.rb
def omniauth_create
auth = request.env["omniauth.auth"]
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) ||
User.create_with_omniauth(auth)
session[:user_id] = user.id
redirect_to user
end
user.rb
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["info"]["name"]
end
end
質問: 検証をバイパスするにはどうすればよいですか?
これまで、 を使用してみましskip_before_filter :authenticate, :only => [:omniauth_create]
たが、うまくいきませんでした。
ありがとう。