Line ログイン
前提知識
- 認証と認可の違い
- シングルサイトオン
- クロスサイトリクエストフォージェリ(CSRF)
参考
- 公式ドキュメント
- それ以外
認可URLに付与できるクエリパラメータ
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
response_type | String | 必須 | |
client_id | String | 必須 | |
redirect_uri | String | 必須 | |
state | String | 必須 | |
scope | String | 必須 | |
nonce | String | 任意 | |
prompt | String | 任意 | |
max_age | Number | 任意 | |
ui_locales | String | 任意 | |
bot_prompt | String | 任意 | |
initial_amr_display | String | 任意 | |
switch_amr | Boolean | 任意 | |
disable_auto_login | Boolean | 任意 | |
disable_ios_auto_login | Boolean | 任意 | |
code_challenge | String | 任意 | |
code_challenge_method | String | 任意 | |
緑文字
緑文字:Laravel Socialite側で自動的にクエリパラメータが設定される(開発者がオーバライドすることも可能)
Laravel Socialite側でクエリパラメータがどのくらい自動生成されるのかをdd()メソッドで確認してみると、、、「client_id」「redirect_url」「scope」「response_type」「state」は定義済みになっている
■認可URL生成箇所
public function redirectToProvider(Request $request) { $provider = $request->provider; dd(Socialite::driver($provider)); return Socialite::driver($provider) ->redirect(); }
■dd()メソッドの出力結果
SocialiteProviders\Line\Provider {#489 ▼ // app/Http/Controllers/Auth/LoginController.php:24 #request: Illuminate\Http\Request {#44 ▶} #httpClient: null #clientId: "[.envにて設定されたLINEログインチャンネルのチャンネルID]" #clientSecret: "[.envにて設定されたLINEログインチャンネルのチャンネルシークレット]" #redirectUrl: "[.envにて設定されたコールバックURL]" #parameters: [] #scopes: array:3 [▼ 0 => "openid" 1 => "profile" 2 => "email" ] #scopeSeparator: " " #encodingType: 1 #stateless: false #usesPKCE: false #guzzle: [] #user: null #credentialsResponseBody: null #config: array:4 [▼ "client_id" => "[.envにて設定されたLINEログインチャンネルのチャンネルID]" "client_secret" => "[.envにて設定されたLINEログインチャンネルのチャンネルシークレット]" "redirect" => "[.envにて設定されたコールバックURL]" "guzzle" => [] ]
赤文字
赤文字:開発者がクエリパラメータに設定(追加)する
考慮事項
- stateの検証
自生成したstateをcookieに保存しておいてコールバック時に検証する。 - pkce対応
その他
自動友達追加
LINEログイン時の認可画面に表示される友だち追加のチェックはデフォルトでオフになっている
友だち追加のチェックをデフォルトでオンにすることもできるが、オンにする方法は、公式ドキュメントや記事にも記載されていないぽっい。法人専用の機能??
https://www.line-community.me/ja/question/5d6dc402401690d976e940f2
https://socialplus.jp/line/add_friend
https://www.sns-loghy.jp/column/184/
デフォルトだと友達追加は未チェック
コメント