2015/02/19 デブサミ2015 【19-C-5】OpenID ConnectとAndroidアプリのログインサイクル #devsumiC
#devsumiC @kura_lab: オフラインで書き込みしたいときとかは、Cookieとトークンを同期させなくてもよいけど
2015-02-19 15:37:35トークンはCookieの有効/無効にあわせるのがポイント ログアウト時: Cookieを無効にしたら、アクセストークン、リフレッシュトークンも無効 ただしバックエンドでAPIを叩く等の処理があるなら、アクセストークン・リフレッシュトークンは無効化しない #devsumiC
2015-02-19 15:37:47#devsumiC @kura_lab: トークンの有効期限切れの場合。WebViewにセットされているCookieが有効であれば、トークン再発行して有効にすると、自然な振る舞いになると思う
2015-02-19 15:38:25#devsumiC @kura_lab: アカウント切り替えの場合。いま入っているIDと別のIDで入りたい。トークンは無効化せずに、バックエンドでアカウント単位でトークンを保持したほうが良いと思う。Cookieは別アカウントで発行
2015-02-19 15:40:03#devsumiC @kura_lab: なぜ今回、ブラウザを使うような紹介をしているか。それはできるだけブラウザを使ってほしいから
2015-02-19 15:41:08#devsumiC @kura_lab: 推奨する理由その1: IdPのログインセッションを共有できる。これがいちばん大きい。Y!地図のログインフロー、メニュー開く→ログイン押下→WebViewではなくブラウザが起動してログイン
2015-02-19 15:43:17#devsumiC @kura_lab: Y!地図アプリ、ショッピングアプリ、いずれも必ずブラウザが立ち上がるようになっている。アプリ間でログイン状態を共有できるようになっている。Y!以外の他社アプリでも、ブラウザのログイン状態を引き継げる。WebViewだとできない
2015-02-19 15:44:20WebViewを使ったアプリだとセッションが共有出来ないけど、ブラウザだったら共有出来るので、一旦ブラウザを経由してログイン状態を引き継いで自アプリに接続すると良い、とのこと。 これはAndroidだけ?(聞き逃した) #devsumiC
2015-02-19 15:45:40#devsumiC @kura_lab: ブラウザ推奨理由2: SSL通信、ドメインを見て、フィッシングでないことを確認できる。最近のChromeだと証明書の内容確認はできなくなってるけど、ドメインを見れば確認できる
2015-02-19 15:47:48たしかにWebViewだと、URLも見えないし、暗号化通信されているか確認できないから、一抹の不安がある。#devsumiC
2015-02-19 15:48:10#devsumiC @kura_lab: AndroidでID連携を実装する際にはWebViewじゃなくてブラウザを使っていただきたい
2015-02-19 15:48:32Appleが外部ブラウザ開くアプリをUXいけてないからとrejectするというリスクについて #devsumi #devsumiC
2015-02-19 15:49:18#devsumiC @kura_lab: iOSで、ブラウザを立ち上げるようにするとApp Storeの審査で却下されることもある、UX的な意味で。AndroidはAppleほど審査厳しくない、リジェクト可能性低い
2015-02-19 15:49:33iOSアプリでブラウザを経由してアプリを起動させようとすると、UXを理由にAppStoreの審査でリジェクトされる可能性がある(ブラウザとアプリを行ったり来たりするのはUI/UX的によろしくないとの理由)。Androidではその心配は不要。 #devsumiC
2015-02-19 15:50:06いや、むしろGoogleはAppleに対して圧力かけてますからね。外部ブラウザ開くのを推奨しろと。 #devsumi #devsumiC
2015-02-19 15:50:10Appleの審査で、アプリ→ブラウザ→アプリ、と遷移するアプリはUX的にイケてないと判断されてAppleからリジェクトされるらしい #devsumiC
2015-02-19 15:50:47