2017-06-19 3 views
0

Je veux mettre en place une "connexion rapide".Comment changer d'utilisateur tout en préservant le magasin?

Je développe un logiciel d'entreprise où de nombreux utilisateurs travaillent dans la même organisation avec les mêmes données dans le même ordinateur et je veux être capable de savoir qui a fait quoi et quand. À l'heure actuelle, ils doivent se déconnecter et se connecter et charger les données doivent être chargées dans le magasin à nouveau.

Ce que je veux, c'est qu'ils puissent, sans se déconnecter, cliquer sur un utilisateur, à partir de l'organisation, insérer son mot de passe et l'utilisateur est changé tout en préservant le magasin.

Une idée de comment je peux accomplir cela?

J'utilise ember-simple-auth v1.1.0 et ember v2.10.2

+0

Je n'ai jamais entendu parler de ça. Êtes-vous inquiet au sujet d'un utilisateur oubliant de changer d'utilisateur avant de travailler? – AlexMA

+0

Je veux juste qu'un utilisateur puisse se connecter rapidement comme lui-même sur un ordinateur qu'un collègue utilisait et ne pas avoir à attendre que les données soient à nouveau chargées. –

Répondre

0

que je fait en mesure de le résoudre en utilisant simplement authenticate() avec un autre utilisateur, mais jamais d'appeler invalidateSession() qui est la fonction qui appelle sessionInvalidated() qui ressemble à ceci:

sessionInvalidated() { 
    if (!testing) { 
     if (this.get('_isFastBoot')) { 
     this.transitionTo(Configuration.baseURL); 
     } else { 
     window.location.replace(Configuration.baseURL); 
     } 
    } 
    } 

donc de ne pas appeler sessionInvalidated() l'utilisateur n » t redirigé ou la page actualisée et le nouvel utilisateur peut continuer à utiliser le magasin sans changer de page.

1

La solution serait plus simple handicapant lorsque la page reload l'utilisateur se déconnecte. Pour autant que je sache, c'est un rechargement qui provoque la perte de données du magasin, pas une déconnexion par lui-même. Pour ce faire, vous devez remplacer la méthode sessionInvalidated dans votre route application. Par exemple,

sessionInvalidated() { 
    this.transitionTo('/login'); 
}, 

Mais rappelez-vous - vous baissez la sécurité avec cette méthode: si quelqu'un va vous déconnecter et quitter page Web avec l'application ouverte, une autre personne aura la possibilité d'extraire des données (si elles ont suffisamment connaissances techniques au moins installer inspecteur de braise).

Une autre solution nécessitera des recherches approfondies. Je pense qu'il devrait être possible d'implémenter un authentificateur personnalisé qui permettrait d'authentifier un nouvel utilisateur sans se déconnecter, en remplaçant simplement les jetons en magasin. Mais je ne sais pas à quel point il sera difficile de mettre en œuvre et quels obstacles vous pouvez rencontrer. Vous aurez besoin de lire beaucoup les sources de ember-simple-auth, c'est certain.