私はWebサーバーアプリでPython /フラスコを使ってGoogle OAuth2ログインフローを実装しました。私のアプリはユーザーをGoogleにリダイレクトして、Googleの資格情報でサインインして、自分のアプリに戻るよう指示します。Google OAuth2サインインを使用するアプリケーションからユーザーをログアウトするにはどうすればよいですか?
このアプリケーションのログアウト機能を実装する方法を決定する際に問題があります。アプリのセッションCookieをクリアすることはできますが、ユーザーはGoogleのa/cからログアウトしません。ユーザーがログアウトした後にログインすると、リダイレクトはGoogleに送られ、ユーザーはまだGoogleにログインしているため、ユーザーは自動的に(認証情報の再入力を求められなくても)、自分のアプリにサインインし直します。
This SO answer hereなぜその悪い練習すべてのGoogleサービスからログアウトするユーザーを強制的に良いの概要を与えるようです。それが唯一の方法だとすれば、私はそれをするつもりですが、そこにはより洗練されたソリューションがあると仮定していますか?
FWIW、Googleトークンの「取り消し」も機能しません。私のアプリは、profile
とemail
のスコープをOAuth2(see this doc)に使用しています。これらは、ユーザーが明示的に「許可を許可」する必要はないため、ログイン時にユーザーに再度プロンプトを表示させるようなスコープへのアクセスを取り消すことはありません。
場合によっては、mostly this docを使用してOAuth2フロー機能を実装しました。私は自分のコードを投稿することができますが、(1)それはすべて記事にあります。(2)あなたがよく知らないフラスコ/ oauth2でない限り、私はこの質問に答えることとは無関係です。
どのような考えがすばらしいでしょう、ありがとう。
(Googleのあなたのケースでは)。どのように、いつ、いつ、どのくらいの頻度で認可サーバーがユーザーを確認するかは、独自の決定です。最終的には、あなたのアプリケーションを許可しました。ユーザーがあなたのアプリのトークンを取り消すまで、そうするでしょう。それはあなたの側のトークンを無効にしますが、それは認証サーバー上のユーザーの信頼状態に影響を与えません。 –
@KlausD。それは本当です、そして私はあなたに同意します。 **したがって、私の問題の解決策ではありませんか?**(この記事の最後に示唆されている不吉なこと以外は(https://stackoverflow.com/questions/12909332/how-to-logout- googleを使用してログインする)。 –
結局*あなたの*問題はどうですか? –