4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LIFFで繰り返しログイン画面が表示されるバグに出会った時にやったこと

Last updated at Posted at 2020-07-13

沼って数日間吹っ飛ばしたのでメモ。未来の誰かの時間を削減できると嬉しい。

事象

個人情報が含まれるので動画は投稿できないが、次のようなLINEのログイン画面が半無限に表示されるというバグ。("ログイン"を押してもすぐに再度 access.line.me にリダイレクトされる)("半"無限というのは何回もリトライするとタイミング次第でうまく行く時があるから)

再現条件

なんらか liff.init の時のURLとエンドポイントURL(もしくはエンドポイントURL + アクセス時に後ろについていたパス?)が違う場合に発現する模様です。(正直LIFFのSDK読み込んだわけではないので断言はできない)(難読化されたものを読みたくない & 読めない)

私の場合はランディング後のページ切り替えが速過ぎたせいで再現したみたいでした。(ちなみになぜかAndroidでしか再現しませんでした)
私が今開発しているアプリでは / にアクセスした後、ログイン状態によって /signin のようなパスに切り替えていました。

解決策

解決策のヒントはここに書いてありました。ありがたや
https://www.line-community.me/question/5e956551851f7402cd9699a2/line-app%E3%81%8B%E3%82%89liff-line-me%E3%82%92%E9%96%8B%E3%81%84%E3%81%9F%E5%BE%8C%E3%81%AB%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E3%81%95%E3%82%8C%E3%82%8B

LIFFとして登録しているエンドポイントのURLと、
クエリパラメータが付いたURLを比較している行を発見しました。
相違している場合、locationを書き換えている模様です。
(クエリパラメータを付与している時点で100%相違します)

今回の私の事象に対しては、パスを書き換えずにコンポーネントを出し分けるようにしまして、そうすると無事再現しなくなりました。
上記が原因である場合、Androidだけでしか再現しないのが腑に落ちないのでもしかしたら別の原因かもしれないんですが、似たようなバグが出ている場合にお役に立てれば幸いです。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?