実現したいこと
webview でログイン済みの状態から、同ページを外部ブラウザで起動した時にログイン状態を保持した状態にしたい。
webview でログイン済みの状態で、外部ブラウザを起動するようなアプリを見ると、ログイン状態を保持した状態で外部ブラウザが起動されます。
このようなことをしたい場合、一般的な手法を知りたいです。
私が考えた方法は、
・外部ブラウザ起動前に、ログイン状態を引き継げるトークンのようなものをサーバと通信して取得する
・外部ブラウザ起動時に取得したトークンをクエリストリングに付与して開く
・サーバ側でそのクエリストリングのトークン値をサーバ側で保持しているセッション情報と照会
・照会できれば、ログイン済みの情報がセットされたセッション変数を作成し、cookie に保存してもらえるようにセッション ID を振り出す
です。
あとは、以下のことを考えています。
外部ブラウザ起動時の URL は、トークン受付用の URL で、トークンの照合処理完了後に指定 URL(本来開きたかった URL)にリダイレクトさせようと考えています。
トークン払い出し時は、PHP のセッション ID のようにトークンとそのユーザが紐づくようにします。
セキュリティとしては、払い出すトークンは 1 分とか短いもので、照会完了後に削除することで短い寿命で 1 度限りしか使用できないように考えています。
セッション ID の払い出しは、その web ページのログイン処理結果を返すものと同様にすることで、トークンでログインが完了する仕組みという感じを考えています。
一般的な手法が同様なものなのか、全く違うものなのかを知りたいです。
違う場合は、その手法を知りたいです。
「ログイン済み」の状態は、ID とパスワードをユーザが送信して認証を受けることを指しています
PHP で例えると、ID とパスワードからユーザ DB のレコードが照会できればログインを許可しセッション ID を払い出す、よくある認証方式なイメージです。
回答1件
あなたの回答
tips
プレビュー