概要
- 前提として OAuth2 の知識が必要です。
- 本来必要なのは OAuth2 の認可機能ではなく、ただの認証機能で、それは OpenID Connect によって実現できます。ただ、サンプル構築後に動きを確認したところ、 OpenID Connect で自分がやりたいことを Laravel Passport で代替可能なように思えます。
- 認可サーバ (Authorization Server、 OAuth2 サーバ) を Laravel Passport で構築
- Laravel Passport では数種類のトークン発行方法があるが、今回は アクセストークンの発行 Laravel Passport 5.8 Laravel
- 認可サーバにログイン処理を肩代わりしてもらう ("Twitter でログイン" のように "Laravel Passport でログイン" リンクを備えた) クライアントアプリは、次の 2 つ作成した。
- 認可のプロトコルを全て自分で実装したもの。先ほどの アクセストークンの発行 ページのやり方に沿ったものになる。実際に作ったもの -> sample_laravel5_8_oauth2/client at master · oki2a24/sample_laravel5_8_oauth2
- 認可のプロトコルを Laravel Socialite に任せたもの -> sample_laravel5_8_oauth2/socialite at master · oki2a24/sample_laravel5_8_oauth2
- Laravel Socialite 5.8 Laravel では Laravel Passport でログインする方法には言及されていない。別途 Socialite Providers | Laravel Passport を読んで Laravel Passport のプロバイダを追加する必要がある。