在Backand中重新打开应用程序时自动登录用户



我有一个简单的Backand和Ionic应用程序,我希望用户登录一次,从那时起就不再登录了,就像Facebook应用程序一样。 因此,一旦用户登录,我就会收到来自Backand的令牌。据我所知,我假设我必须将该令牌保存在 localStorage 中(我正在这样做并且有效)。但从那时起,我不明白当用户重新访问时我需要做什么才能重新登录。

我已经尝试在我的角度"run"方法中查找本地存储中的现有令牌,如果存在,则将其粘贴到我的http标头中。(以下函数存在于身份验证服务中,并在"run"方法中调用)。

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()"调用将解释我刚刚添加的授权标头。但这就是我误解的;这不是它的工作原理。

所以我的问题是:如何使用该令牌自动登录返回(现有)用户?我似乎在 Backand 文档中找不到任何用于此目的的功能。

提前感谢!

使用后端香草 SDK,以下代码:

backand.user.getUserDetails(false)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});

如果用户经过身份验证,将获取用户详细信息,如果没有身份验证,则将获取 null。 因此,您无需再次登录用户。false 确保它在内部检查它,而无需联系后端。您应该围绕它构建您的应用程序。

你的评论让我找到了我的问题的答案,科尔纳茨基。

问题是我已经将我的appNameanonymousTokensignUpToken包含在初始化中(BackandProvider.init)。删除anonymousToken并添加useAnonymousTokenByDefault:false解决了问题。

getUserDetails现在返回我当前登录的用户,而不是 Guest 对象。感谢您的帮助!

最新更新