Slide 1

Slide 1 text

Copyright © aumo, Inc. All Rights Reserved. WebView認証連携 2022年4月25日


Slide 2

Slide 2 text

Copyright © aumo, Inc. All Rights Reserved. Masahiro Higuchi/樋口雅拓 • グリーグループのアウモ株式会社で、aumo というおでか け領域のメディアを作っています。ゲーム会社ですが、最 近はメディアに力を入れています。 • ソフトウェアエンジニアで、サービスの立ち上げに関わる ことが多いです。twitter: @mahiguch1 • アイコンを12年使い続けたら実態に合わなくなったので、 変えようかなと思ってます。

Slide 3

Slide 3 text

Copyright © aumo, Inc. All Rights Reserved. 国内最大級の おでかけ情報サービ ス 50万 50万 掲載記 事数 総口コミ 数 掲載メディア 数 500 Copyright © aumo, Inc. All Rights Reserved. appカテゴリランキング両 OS首位 「Google Play ベスト オブ 2018」ベスト アプリ 2018 生活お役立ち部門 優秀賞 ※2019年1月 時点 aumoとは? 1500万 500万 月間ユー ザー数 アプリDL 数 月間流通額 12億円

Slide 4

Slide 4 text

Copyright © aumo, Inc. All Rights Reserved. aumoポイントとは? メディアに投稿したりすると貯まるポイント機能を追加した。 WebViewで表示する要件だが、これまでWebViewで認証が必要な画 面を表示した事がなかった。

Slide 5

Slide 5 text

Copyright © aumo, Inc. All Rights Reserved. 解決したい課題 ● WebServerはセッション Cookieで認証している。 ● API ServerはOAuth access tokenで認証している。 ● アプリはOAuth tokenは持って いるが、セッションCookieは 持っていない。 この課題を解決したい! WebViewで認証が必要な画面を表示したい


Slide 6

Slide 6 text

Copyright © aumo, Inc. All Rights Reserved. 課題解決手法 ● OAuth tokenで認証して、セッ ションをSet-Cookieする endpointを作った。 ● レスポンスはポイント画面にリダ イレクト。 ● ポイント画面に行く前にこの endpointを叩くことで、認証必 須のポイント画面を表示できる ようにした。 これでリリースと思ったが。。 OAuth tokenとセッションCookieを交換するAPIで解決


Slide 7

Slide 7 text

Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 メールアドレスが登録されていなけ れば、設定画面に飛ぶ仕様。 設定画面でメールアドレスを登録し た後ポイント画面を表示しようとする と、またメールアドレス設定画面に 飛ぶ。 なんだこれ??? 不具合の内容


Slide 8

Slide 8 text

Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 ● メールアドレス登録後にサーバから取得し たユーザ情報が登録前のものだった。それ を見て再度登録画面に飛んでいた。 ● サーバから取得しないようにして、アプリ内 の情報を更新した所、今度は認証が通ら なくなった。 なんだこれ? 失敗した対応策


Slide 9

Slide 9 text

Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 キャッシュにあるユーザ情報を使っ て認証しようとして拒否られていた。 リリース3日前。レアケースなので、 なんとか応急処置したい。 不具合の原因


Slide 10

Slide 10 text

Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 DispatchQueue.main.asyncAfter( deadline: .now() + .milliseconds(60000)) { User.updateMyInfo {_ in} } 応急処置
 キャッシュの有効期限は1分間なので、1分後に更新するようにした。た だ、1分間は認証が通らない状態となるので、より良い解決法があれば 教えて欲しい。


Slide 11

Slide 11 text

Copyright © aumo, Inc. All Rights Reserved. まとめ ● ポイント機能をリリースした。 ● しかし、メアド登録後1分間はポイント画面を見れない状態。 ● 根本対応を行うので、良いアイデアがあれば教えて欲しい。 ご清聴、ありがとうございました! 【雑談】 Xcode 13.3.1に上げたら、archiveで”Incremental compilation has been disabled: it is not compatible with whole module optimization on Release build configuration”というエラー。13.2.1 に下げたら解消。原因が分からずもやもやしているので、何かご存 知の方がいましたら、声をかけてください。