2015-11-12 9 views
5

Meine Anwendungen Struktur ist wie unten -OAuth-Token-Sharing mehrere Anwendungen

https://democompany.com/ 
https://democompany.com/app1 
https://democompany.com/api 

Benutzer anmeldet auf Website-URL https://democompany.com/logon.aspx die eine asp.net Webforms Anwendung.

app1-Anwendung ist eine angularjs-Anwendung, die/API App verwendet. api ist webapi2-Anwendung, die Oauth-Token für die Authentifizierung verwendet. Ich möchte, dass sich der Benutzer nur einmal unter decomompany.com/logon.aspx anmeldet und das oauth-Token an die angularjs-Anwendung übergibt.

Gibt es eine empfohlene Möglichkeit, OAUTH Token von einer Anwendung an eine andere zu übergeben.

Antwort

4

Solange Ihre Anwendungen eine Subdomäne verwenden, können Sie für diese Zwecke die Clientseite window.localStorage verwenden.

// to set token in storage  
window.localStorage.setItem('access_token', access_token); 
// to get token from storage 
access_token = window.localStorage.getItem('access_token'); 

So haben Sie Zugriff auf diesen Speicher von jeder Seite mit etwas JavaScript-Code. Zum Beispiel mit Kombination von Winkel + web.api Sie Setup-Token für alle Ihre Wünsche in $ http-Dienst kann:

$http.defaults.headers.common['Authorization'] = "Bearer " + token; 

auch Sie interceptor Setup-Token verwenden können, wenn Sie mehr Kontrolle über Ihren Code haben wollen.

+0

Funktioniert window.localStorage in Browsern ie8 und ie9? Danke für die Antwort ! – Yousuf

+0

Ich habe es nie für ie8 verwendet, aber laut [this] (http://stackoverflow.com/questions/3452816/does-ie8-out-of-the-box-have-support-for-localstorage) antworte es . Sie können auch Tabelle der Kompatibilität [hier] (http://www.w3schools.com/html/html5_webstorage.asp) sehen. –

+0

http://caniuse.com/#feat=namevalue-storage sagt, dass, wenn Sie IE6/IE7 oder Opera Mini verwenden, sollte es überall funktionieren, einschließlich Mobile. –

0

Ich glaube, was Sie beschreiben, ist die Definition von Cookies.

Verwandte Themen