LoginSignup
36

More than 5 years have passed since last update.

OmniAuthでログイン後に呼び出されるコールバックにパラメータを渡す方法

Last updated at Posted at 2012-12-19

ログインの仕方によってコールバックで呼び出すメソッドを切り替えたいもののOmniAuthで上手くやる方法がパッ見つからなかったので利用した方法。ログイン前の画面からパラメータをコールバックに渡してパラメータの値で処理を分岐させる。が、これまたコールバックに渡すパラメータの保持されているところがわかりにくかったのでメモ。

例えば「flag=1」という値をtwitterでOAuth認証した後に呼び出されるコールバックに渡したい場合

twitterの認証画面に移るリンクにクエリストリングとして「flag=1」を追加

ログイン画面.html.erb
<%= link_to, 'twitterでログイン', '/auth/twitter?flag=1' %>

クエリストリングとして与えたパラメータはrequest.env['omniauth.params']にハッシュ値として保持されているのでこれを取り出す。

認証後に呼び出されるコールバック内
flag = request.env['omniauth.params']['flag']

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36