Ruby on Railsで開発中のSSOについての質問です。
Googleでログインという機能と同等のものを実装するために、ローカルで作ったアプリから、専用のログインボタンをクリックすると、EC2インスタンス(別でサーバーを構築しました)にリダイレクトするようにしたいです。
ローカルアプリ側からリダイレクトをリクエストし、サーバー側(EC2インスタンス)でその後の処理をする予定です。
EC2インスタンスにリダイレクトを送る方法と、それを確かめるためにEC2インスタンス側のrailsでアクセスログが取得できているかまで確かめたいです。
after_oauth_2_loginでuriにクエリパラメータを渡すことで遷移させる形をとっています。
(例:redirect_uri=https://google.com&search?q=a)
routes
1Rails.application.routes.draw do 2 devise_for( 3 :users, 4 path: 'users', 5 module: 'users' 6 ) 7 devise_scope :user do 8 get '/o/oauth2/auth', to: 'users/sessions#oauth_2_login' 9 post '/o/oauth2/auth', to: 'users/sessions#after_oauth_2_login' 10 end 11 # get "/o/oauth2/auth" => "devise/sessions#oauth_2_login" 12 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 13 root "homes#top" 14 resources :users 15 resources :projects, except: [:show] 16 resources :credentials 17 18end
DeviseSessionsController
1def after_oauth_2_login 2 @user = User.find_by(email: params[:email]) 3 if @user.nil? 4 render :oauth_2_login 5 else 6 sign_in(@user).class 7 # ログイン処理用のコントローラ(POST) 8 # redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else' 9 redirect_to params[:redirect_uri] + "?q=a" 10 end 11 end
routesやcontrollerもぐちゃぐちゃなのですが、
######・ローカルで作ったアプリから、EC2インスタンスにリダイレクトするために必要なこと
・EC2インスタンス側でアクセスログを取得する方法
この2点につきましてご理解ある方はお力添えいただきたく存じます。
よろしくお願いいたします。
あなたの回答
tips
プレビュー