2016-06-29 5 views
2

Ich habe eine Anforderung, dass nur ein Benutzer aktiv ist (dh Login) und andere Benutzer sich nicht mit den gleichen Anmeldeinformationen einloggen können.wenn er sich anmeldet Ich muss andere mit Ionic + AngularJs (Hybrid) Mobile App einschränken.Wie verhindern wir die Anmeldung der zweiten Person, wenn bereits die erste Person eingeloggt ist

Momentan verwende Serverseite als Java und Client Seite als Hybrid Framework. und wenn ein Benutzer anmelden es eine Standardauthentifizierung Token generiert und nach thert für alle REST API Service-Anrufe sende erzeugte Token als

login: function(userName, password, authTokenValue) { 

     var loginPath = '/login/' + userName + '/' + password; 
     //calling loginCustomer rest service 
     return $resource(host + loginPath, {}, { 

      query: { 
       headers: { 

        'X-Auth-Token': authTokenValue 
       }, 
       method: 'GET' 
      } 
     }); 
    } 

und Token generiert auf Benutzername und Passwort basiert es nicht identisch ist (dh zufällig generierter Token-Wert) aber ich führe keine Sitzung für irgendwelche Benutzer aber ich habe eine Anforderung, dass, wenn Benutzer bereits login ist, eine andere Person nicht auf diesen Service zugreifen kann, der die gleichen Anerkennungen verwendet.

Bitte geben Sie einige Richtlinien, wie kann ich es erreichen? Entschuldigung für mein schlechtes Englisch

+0

eigentlich weiß ich nicht, gibt es eine Methode, die mit der eingebauten Funktion zu tun. Wenn ich das tun muss, tue ich es so. Speichern Sie seine letzte geloggte IP, Anmelde- und Abmeldezeit und vergleichen Sie sie bei der nächsten Benutzeranmeldung. –

+0

Wahrscheinlich suchen Sie nach gleichzeitiger Sitzungssteuerung: http://docs.spring.io/spring-security/site/docs/3.1.x/reference/ns-config.html#ns-concurrent-sessions –

+0

@SlavaSemushin I nutzte das gleiche Konzept auf meiner Serverseite. ** aber der erste Benutzer bei der Anmeldung (aktiv) und nächste Benutzeranmeldung mit den gleichen Anmeldeinformationen dann zweiten Benutzer werden aktiv und erste Benutzer wird inaktiver Modus ** – Sai

Antwort

0

Was Sie wahrscheinlich suchen, ist Session Management.

Da Sie Token verwenden, es wäre eine gute Idee, das Token zu speichern, sobald Sie authentifizieren (persistenten Speicher wie $sessionStorage oder $localStorage - überprüfen ngStorage).

Wenn jemand anderes eine Anmeldung durchführen möchte, prüfen Sie diese Geschäfte einfach nach einem Token. Wenn keine vorhanden ist, kann dieser Benutzer seine Anmeldung fortsetzen. Andernfalls lehnen Sie einfach das Versprechen mit der Meldung "Log out first" ab.

+0

, aber es ist nicht auf einzelne Gerät bezogen. Ich möchte auf mehreren Geräten ausführen. – Sai