2017-07-13 1 views
1

Existe-t-il un moyen de limiter les utilisateurs à une seule session [simultanée]?AWS Cognito: Restreindre les utilisateurs à un seul login à la fois

Je voudrais être en mesure de vérifier si l'utilisateur actuel a déjà une session. S'ils le font, ils peuvent choisir de signer cette session avant de continuer.

Pour être clair, au moment où il est possible de se connecter le même utilisateur à partir de plusieurs onglets du navigateur, (à partir de la même application Cognito)

cognitoUser.authenticateUser(authenticationDetails, { 
    cognitoUser: this.cognitoUser, 
    onSuccess: (result) => { 
    this.userSession = result 
    console.log('successfully logged in', result) 
    // But are they already logged in somewhere else? 
    }, 
    onFailure: (error) => { 
    console.log('Login failed for some reason...') 
    callback(error) 
    } 
} 

Je comprends que Cognito est construit avec les mobiles/applications à l'esprit donc cela pourrait ne pas être possible sans utiliser un crochet de connexion lambda ...? Même alors, je ne suis pas sûr si c'est possible sans maintenir une table des utilisateurs connectés ...?!

Répondre

1

Vous pouvez signe l'utilisateur actuel globalement de tous les appareils en invalidant tous les jetons émis

cognitoUser.globalSignOut();

ou signes l'utilisateur actuel de l'application en session existante dans le navigateur.

if (cognitoUser != null) { cognitoUser.signOut(); }

Vous pouvez onvoke soit de ce qui précède juste avant sigins utilisateur à l'aide à nouveau l'écran de connexion.

+0

Je pense que cela pourrait fonctionner ... il ne nous dira pas si l'utilisateur est connecté ailleurs ... comme un autre périphérique, ou un onglet privé, etc. Mais cela ne forcerait qu'une seule session I pense .. nous allons l'essayer. – comfytoday