【发布时间】:2014-04-03 17:23:16
【问题描述】:
我们在 Azure VM 上建立了一个 Angular 管理站点。 API 是使用 ServiceStack 构建的,我们遇到了一个问题,当我们登录并说“记住我”时,我们的用户没有被记住。
这是我们的 AppHost 插件位。
Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[]
{
// it seems as though order matters here. If these are reversed, CredentialsAuth doesn't work.
new CustomCredentialsAuthProvider(container),
new CustomBasicAuthProvider(container)
})
{
HtmlRedirect = "~/login.html"
});
在 Angular 中,我们初始化我们的凭据
$scope.credentials = {
userName: '',
password: '',
rememberMe: false
};
$scope.login = function (credentials) {
if (!$scope.signinForm.$valid) {
$scope.submitted = true;
toaster.pop(nullFieldAlert);
return;
}
authService.save(credentials,
// Success
function (data) {
$rootScope.authenticated = true;
history.back();
},
// Failure
function (e) {
handleErrors(e);
});
};
然后当用户登录时,他们可以选择更改rememberMe = true;
很遗憾,无论是否设置了 rememberMe,我们的会话都会在几分钟(有时是几秒钟)内到期。
为了让会话在 Azure 上持续 > 3 分钟并让 RememberMe 正常工作,我们需要做些什么?
【问题讨论】:
标签: azure servicestack session-timeout