繁体   English   中英

Rails中的Omniauth

[英]Omniauth in Rails

我目前正在与一个尝试添加身份验证的应用程序一起使用。 我安装了两个宝石bcrypt-rubyomniauth-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM