我顺着铁路播客简单 OmniAuth http://railscasts.com/episods/241-simple-omniauth 创建我的推特登录。当我试图通过推特签名并创建新用户时,我收到以下信息:
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.00. 1:30/auth/twitter/twitter/callback
上,但我仍然收到这个信息。 我在本地主机上测试 。
我以Hartl的轨迹研究http://ruby.railstruction.org/ruby-on-rails-tumental-book 为我的用户模拟了我的用户,我的网站项目要求用户填满这些域。
与铁路播客不同, 我发明了一个新的方法处理 omniauth登录:
控制线.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
用户.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_filter:audeticate, : only {gt;}[:omniauth_create]
,但是这行不通。
谢谢