LINEログインでbot_prompt=aggressiveを指定してユーザーがLINE連携許可後に友だち追加をキャンセルした時の罠

※もちろん個人ブログは内容の正誤や正確さを保証しません。

まずスマホから、ほーむぺーじに置いたLINEログイン的なボタンを押します。するとこんな画面に飛びました。

line1.png

素直に緑色の「許可する」を押すとこんな画面に飛びました。

line2.png

赤枠で囲っているように、右上と下に2つ「キャンセル」ボタンがあります。
どっち押しても同じようで全然違うのやばくない?が今回の内容です。

下のキャンセルを押すとほーむぺーじは認可コードとかを得られ、その認可コードでアクセストークンとかを得られ、
そのアクセストークンでユーザーのアカウント名とかプロフィール写真とかを得られます。

ちなみにこのとき認可コードと一緒にfriendship_status_changed: falseとかいう値も届きます。こいつ友だち断りやがったでという告げ口です。
素直に友だち追加もした場合は認可コードと一緒にfriend(略): trueが届きます。

一方、右上のキャンセルを押すとほーむぺーじは認可コードを得られません。
しかしその後LINEアプリで設定→アカウント→アカウント連携あたりを見ると、

line3.png

連携したみたいになっています。(出会い系アプリばかりで恥ずかしかったのでいっぱい隠しました)
このままの状態でほーむぺーじに戻り、LINEログイン的なボタンをもう一度押してみます。

すると画面がぴゅんぴゅんとなりました。一瞬LINEが開いたような気もします。

ほーむぺーじは認可コードを得られました。アカウント名とかプロフィール写真とかも手に入ります。
ちなみにこのとき認可コードと一緒にfriendなんとかの値はもらえません。trueとかfalseとかでなくもらえません。

if (res[‘friendship_status_changed’] === ‘false’)とか適当書いて予期せぬ挙動様に襲われたのでこれを書きました。

テスト用の雑なページをしばらく置いておくんですがぴゅんぴゅんでアカウント名とかがぼくの手元に入り得ます。
https://nkhr-c.com/linetest.html

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です