[英]Omniauth in Rails
我目前正在与一个尝试添加身份验证的应用程序一起使用。 我安装了两个宝石bcrypt-ruby
和omniauth-identity
。 然后,我在config / initializers文件夹中添加了一个包含这些内容的新文件。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :identity, on_failed_registration: lambda { |env|
IdentitiesController.action(:new).call(env)
}
OmniAuth.config.on_failure = Proc.new { |env|
OmniAuth::FailureEndpoint.new(env).redirect_to_failure
}
end
当我尝试在终端中创建身份模型时,我不断收到此语法错误
rails generate model identity name:string email:string password_digest:string
syntax error, unexpected ':', expecting kEND (SyntaxError)
provider :identity, on_failed_registration: lambda { |env|
^
任何帮助,将不胜感激。
您的代码使用Ruby 1.9语法,但是我的直觉是您尝试使用Ruby 1.8 VM生成模型。 您可以运行ruby --version
并确认吗?
代替
Rails.application.config.middleware.use OmniAuth::Builder do
provider :identity, on_failed_registration: lambda { |env|
IdentitiesController.action(:new).call(env)
}
尝试
Rails.application.config.middleware.use OmniAuth::Builder do
provider :identity, :on_failed_registration => lambda { |env|
IdentitiesController.action(:new).call(env)
}
您似乎正在运行Ruby 1.8。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.