我正在使用AngularJS和開箱即用的WebApi2令牌身份驗證模板(個人用戶帳戶)創建站點。我想在同樣的時間內登錄兩個網站,一個在www.domain.com,另一個在sub.domain.comWeb Api 2子域令牌身份驗證
目前我使用下面的代碼在角來認證用戶:
$http({
method: 'POST',
url: '/Token',
data: serializedData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).success(function (data, status, headers, config) {
$window.sessionStorage.token = data.access_token;
});
和後附加的授權報頭爲每個請求:
app.factory('authInterceptor', function ($rootScope, $q, $window) {
return {
request: function (config) {
config.headers = config.headers || {};
if ($window.sessionStorage.token) {
$window.sessionStorage.loggedIn = true;
config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
}
return config;
}
};
});
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('authInterceptor');
});
上述代碼允許每個站點單獨登錄,但sessionstorage不會持續存在於其他窗口/選項卡中,因此它不會將用戶登錄到子域。
有這個博客帖子就這個問題(按下一半)一些意見:http://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/
但是它似乎太複雜實現(並讓用戶的不良影響被重定向)。我希望將網域設置爲容易的東西,只是餅乾,如:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieDomain = ".domain.com"
});
我開始懷疑我是否應該使用在當前情況下的cookie令牌認證...
我認爲將標記存儲在cookie中是一個很大的不不不不? – kiwijus