/auth/twitter にアクセスしたときに、OmniAuth がリダイレクトする URL をどのように取得しますか?
API サーバーを構築していて、URL を JSON でクライアントに渡して、クライアントが URL で必要なことを何でもできるようにしたいと考えています。
私が欲しいのは、認証 URL のように見える戦略の request_phase の結果だと思いますが、それを新しいコントローラーで取得して次のようにするにはどうすればよいですか。
class MyOauthController < ApplicationController
# GET /my_oauth/signin/twitter.json
def signin
url = ???
render json: {signin_url: url}
end
これを行うきれいな方法はありますか?
はい、Omniauth は次のようなヘルパー機能を提供します。
user_omniauth_authorize_path(key)
# for your case
user_omniauth_authorize_path("twitter")
Devise の概要を確認してください。