我在登录控制器中实现了卫星化。但是,自动登录呢?什么是最佳实践?
对 auth 的调用现在在 LoginCtrl 中:
$auth.login(credentials)
.then(function(data) {
//Save username and userid in local storage
if(data.data !== undefined && data.data.user_name !== undefined && data.data.user_id !== undefined){
window.localStorage['user_name'] = data.data.user_name;
window.localStorage['user_id'] = data.data.user_id;
}
//Save email and password in local storage for autologin
window.localStorage['user_email'] = credentials.email;
window.localStorage['user_password'] = credentials.password;
$state.go('home', {});
})
.catch(function(response) {
alert("error");
});
当用户在另一个页面上时,如果令牌已过期,他将无法访问需要身份验证的页面。我不想让他再次登录。因此,在每个其他控制器中,如果对某些受保护资源的请求失败,我的想法是自动登录他。所以我把 auth.login 放在所有这些控制器中。这看起来是一个糟糕的选择。
我应该怎么办?创建服务?登录和自动登录?这是最佳实践吗?