Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebView認証連携

 WebView認証連携

Swift愛好会での発表資料です。

mahiguch

April 15, 2022
Tweet

More Decks by mahiguch

Other Decks in Technology

Transcript

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


  2. Copyright © aumo, Inc. All Rights Reserved. Masahiro Higuchi/樋口雅拓 •

    グリーグループのアウモ株式会社で、aumo というおでか け領域のメディアを作っています。ゲーム会社ですが、最 近はメディアに力を入れています。 • ソフトウェアエンジニアで、サービスの立ち上げに関わる ことが多いです。twitter: @mahiguch1 • アイコンを12年使い続けたら実態に合わなくなったので、 変えようかなと思ってます。
  3. 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億円
  4. Copyright © aumo, Inc. All Rights Reserved. aumoポイントとは? メディアに投稿したりすると貯まるポイント機能を追加した。 WebViewで表示する要件だが、これまでWebViewで認証が必要な画

    面を表示した事がなかった。
  5. Copyright © aumo, Inc. All Rights Reserved. 解決したい課題 • WebServerはセッション

    Cookieで認証している。 • API ServerはOAuth access tokenで認証している。 • アプリはOAuth tokenは持って いるが、セッションCookieは 持っていない。 この課題を解決したい! WebViewで認証が必要な画面を表示したい

  6. Copyright © aumo, Inc. All Rights Reserved. 課題解決手法 • OAuth

    tokenで認証して、セッ ションをSet-Cookieする endpointを作った。 • レスポンスはポイント画面にリダ イレクト。 • ポイント画面に行く前にこの endpointを叩くことで、認証必 須のポイント画面を表示できる ようにした。 これでリリースと思ったが。。 OAuth tokenとセッションCookieを交換するAPIで解決

  7. Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 メールアドレスが登録されていなけ れば、設定画面に飛ぶ仕様。

    設定画面でメールアドレスを登録し た後ポイント画面を表示しようとする と、またメールアドレス設定画面に 飛ぶ。 なんだこれ??? 不具合の内容

  8. Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 • メールアドレス登録後にサーバから取得し

    たユーザ情報が登録前のものだった。それ を見て再度登録画面に飛んでいた。 • サーバから取得しないようにして、アプリ内 の情報を更新した所、今度は認証が通ら なくなった。 なんだこれ? 失敗した対応策

  9. Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 キャッシュにあるユーザ情報を使っ て認証しようとして拒否られていた。

    リリース3日前。レアケースなので、 なんとか応急処置したい。 不具合の原因

  10. Copyright © aumo, Inc. All Rights Reserved. 想定外の不具合 DispatchQueue.main.asyncAfter( deadline:

    .now() + .milliseconds(60000)) { User.updateMyInfo {_ in} } 応急処置
 キャッシュの有効期限は1分間なので、1分後に更新するようにした。た だ、1分間は認証が通らない状態となるので、より良い解決法があれば 教えて欲しい。

  11. 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 に下げたら解消。原因が分からずもやもやしているので、何かご存 知の方がいましたら、声をかけてください。