Tim*_* T. 9 ruby-on-rails oauth devise omniauth
我正在将OAuth用于提供商(LinkedIn).
我希望能够传递参数,以便当有人注册时,我可以在创建新用户时添加一些额外的值(我正在使用Devise).
但是我该怎么做?
看起来链接转到提供程序,然后提供程序回调我的应用程序.如何从该链接传递参数?
Mat*_*hew 18
如果您将GET样式参数添加到身份验证URL,则它们将通过密钥request.env下的Rails 对象在回调中可用omniauth.params.例如
如果您通过以下身份验证:
link_to "Log In", "/auth/linkedin?foo=bar"
Run Code Online (Sandbox Code Playgroud)
在映射到GET /auth/:provider/callback您的控制器方法中将具有:
request.env['omniauth.params'] == { "foo" => "bar" }
Run Code Online (Sandbox Code Playgroud)
答案有点晚了,但我希望它对某人有所帮助.
执行此操作的简单方法是在会话中设置参数,然后在回调中访问它们。
在重定向到提供商的操作中:
session[:additional] = additional_data_hash
Run Code Online (Sandbox Code Playgroud)
在处理来自提供者的回调的操作中:
data = session.delete(:additional)
Run Code Online (Sandbox Code Playgroud)
用于delete确保您的会话对于后续请求而言保持较小。
| 归档时间: |
|
| 查看次数: |
3427 次 |
| 最近记录: |