Forcer google account chooser

Est-il une manière que je peux forcer l' compte google sélecteur pour apparaître même si l'utilisateur est connecté avec un compte.

j'ai essayé en redirigeant vers cette URL:

https://accounts.google.com/AccountChooser?service=lso&continue=[authorizeurl]

et il semble fonctionner, mais je ne sais pas si il y a d'autres conditions dans lesquelles il pourrait échouer.

enter image description here

42
demandé sur cyberhicham 2013-01-17 21:08:52

3 réponses

le paramètre suivant est pris en charge dans les URLs d'autorisation OAuth2:

prompt

Actuellement, il peut avoir des valeurs none,select_account et consent.

  • aucun: Google ne montrera aucune interface utilisateur (UI), et par conséquent échouera si l'utilisateur doit se connecter, ou sélectionner un compte en cas de multi-connexion, ou le consentement en cas de première approbation. Il peut être exécuté dans un I-frame invisible pour obtenir un token d'utilisateurs préalablement autorisés avant de décider, pour instance, pour afficher un bouton d'autorisation.

  • consentement: force la page d'approbation à être affichée même si l'Utilisateur a déjà autorisé votre demande. Cela peut être utile dans quelques cas, par exemple si vous avez perdu le refresh_token pour l'utilisateur, car Google ne publie des refresh_tokens que sur une action de consentement explicite.

  • select_account: le sélecteur de Compte s'affichera, même s'il n'y a qu'un seul utilisateur connecté, tout comme vous avez demandé.

select_account peut être combiné avec consent, comme dans:

prompt=select_account consent

74
répondu breno 2018-05-05 16:00:41

Vous pouvez aussi ajouter le paramètre "prompt" dans les balises HTML comme data-prompt= "select_account":

<div class="g-signin2" data-onsuccess="onSignIn" data-prompt="select_account"> 

et il va forcer compte sélecteur à chaque fois, même si vous êtes connecté avec un seul compte

5
répondu Josip Lukacevic 2016-08-22 13:10:26

certaines personnes peuvent finir ici à la recherche d'une réponse sur la façon de faire cela dans Microsoft.AspNetCore.Authentication.

nous avons pu l'accomplir via le code suivant dans le démarrage.Méthode ConfigureServices:

services.AddAuthentication()
  .AddGoogle(options =>
  {
      options.ClientId = configHelper.GoogleOAuthClientID;
      options.ClientSecret = configHelper.GoogleOAuthSecret;
      options.CallbackPath = "/signin-google";
      options.AuthorizationEndpoint = string.Concat(options.AuthorizationEndpoint, "?prompt=select_account");
  });
3
répondu jaybro 2018-03-29 14:56:16