はじめに
以前CognitoでLINE認証 + 友だち追加を行おうとしましたが、現在のCognitoでは非対応とサポートから返信が来ました。
ですので本件をAuth0で本件を実現しようと思います。
※LINEの友達追加は認可URLにクエリパラメータを入れる必要があるのですが、Cognitoでは認可URLへクエリを入れることが非対応のようでした。
前提条件
以下の準備は完了しておいてください!
- Auth0の登録(https://auth0.com/jp)
- LINE Developerの登録(https://developers.line.biz/ja/)
LINEアカウントの作成
まず初めに LINE Developerで
- LINE Login アカウント
- Messaging API アカウント
の2アカウントを作成します。
2つのアカウント作成が完了したら、Login用のアカウントをクリックしLinked OA
にMessaging APIのアカウントを選択し保存します。
(ここで「ログインのLINEアカウント」と「ログイン後に友だち追加するLINEアカウント」を紐付けます。)
また同じページ内にある、Channel ID
とChannel secret
は後ほど利用しますので、コピーしておいてください。
次にLogin用アカウントの「Web app有効化」と「Callback URL」の設定を行います。
Claaback URL:https://[YOUR_DOMAIN]/login/callback
([YOUR_DOMAIN]
をみなさんが利用されるドメインに変更してください。)
LINE側の設定は以上です!
Auth0にLINE認証を登録する
以下からLINE認証の機能を追加しましょう。
次に Auth0のManagement API
を利用するためのトークンを取得します。
以下のリンクに従って、アクセストークンを取得してください。(今回はテスト用トークンを利用します。)
アクセストークンが取得できたら、Auth0が用意してくれている「Management API クライアント」を利用しましょう。
左上の「SET API TOKEN」にアクセストークンをセットすることで簡単に利用することができます。
ここまで準備ができましたら後はManagement API
を実行するだけです!
今回はLINEのコネクションをアップデートするので、「id」 と 「body」に以下を追加します。
- id:LINEコネクションのID
- body:以下のJSONデータ(先程コピーした「Channel ID」と「Channel secret」を貼り付けてください。)
{
"options": {
"client_id":"YOUR_CHANNEL_ID",
"client_secret":"YOUR_CHANNEL_SECRET",
"upstream_params": {
"bot_prompt": {
"value": "aggressive"
}
}
}
}
上記のBodyにはupstream_params
がセットされていますが、これが認可URLへクエリパラメータを入れるために必要な情報となっています。
(以下ドキュメントに記載されていました。)
実際に動かしてみる
スマホで確認したかたので、Vercelにデプロイします。
Auth0の認証画面からLINEアプリが起動して、LINE認証 + 友達追加できることが確認できました!