我有一个简单的Backand和Ionic应用程序,我希望用户只需登录一次就可以登录,就像Facebook应用程序一样。 因此,一旦用户登录,我将从Backand收到一个令牌。据我所知,我假设我必须将该令牌保存在localStorage中(我正在做,并且有效)。但从那时起,我不明白在重新访问用户时需要做些什么来重新登录。
我已尝试过我的角色"跑步"在localstorage中查找现有令牌的方法,如果存在,我将其粘贴到我的http头中。 (以下功能存在于身份验证服务中,并且正在"运行"方法中调用。)
self.checkExistingUser = function() {
if ($localStorage.user_token) {
$http.defaults.headers.common.Authorization = $localStorage.user_token;
Backand.user.getUserDetails()
.then(function (response) {
// Do stuff
}
console.log('Token found, logging in user');
}
};
我假设" getUserDetails()" call会解释我刚刚添加的Authorization标头。但那是我误解的;那不是它的工作方式。
所以我的问题是:如何使用该令牌自动登录返回(现有)用户?我似乎无法在Backand文档中找到任何用于此目的的函数。
提前致谢!
答案 0 :(得分:0)
使用后端Vanilla SDK,此代码:
backand.user.getUserDetails(false)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
如果用户身份验证,将获取用户详细信息,否则返回null。 因此您无需再次登录用户。 false会确保它在不联系Backend的情况下在内部进行检查。你应该围绕它构建你的应用程序。
答案 1 :(得分:0)
你的评论让我找到了我的问题的答案,Kornatzky。
问题是我已将appName
,anonymousToken
和signUpToken
包含在初始化(BackandProvider.init)中。删除anonymousToken
并添加useAnonymousTokenByDefault:false
解决了问题。
getUserDetails
现在返回我当前登录的用户而不是Guest对象。谢谢你的帮助!