auto-login 用户在后端打开应用程序时
auto-login user when reopening app in Backand
我有一个简单的 Backand 和 Ionic 应用程序,我希望用户登录一次,之后不再登录,就像 Facebook 应用程序一样。
因此,一旦用户登录,我就会收到来自 Backand 的令牌。据我所知,我假设我必须将该令牌保存在 localStorage 中(我正在做,并且正在工作)。但是从那时起,我不明白我需要做什么才能在用户再次访问时重新登录。
我已经尝试在我的 angular "run" 方法中查找本地存储中的现有令牌,如果存在,我将其粘贴到我的 http headers 中。 (认证服务中存在以下函数,在"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()" 调用会解释我刚刚添加的授权 header。但这就是我的误解;事情不是这样的。
所以我的问题是:如何使用该令牌自动登录返回的(现有)用户?我似乎无法在 Backand 文档中找到用于该目的的任何函数。
提前致谢!
使用后端 Vanilla SDK,此代码:
backand.user.getUserDetails(false)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
如果他通过身份验证,将获取用户详细信息,否则将获取 null。
所以你不需要再次登录用户。 false 确保它在内部检查它而不联系后端。您应该围绕它构建您的应用程序。
Kornatzky,你的评论让我找到了问题的答案。
问题是我将我的 appName
、anonymousToken
和 signUpToken
包含在初始化 (BackandProvider.init) 中。删除 anonymousToken
并添加 useAnonymousTokenByDefault:false
解决了问题。
getUserDetails
现在 returns 我当前登录的用户而不是 Guest 对象。感谢您的帮助!
我有一个简单的 Backand 和 Ionic 应用程序,我希望用户登录一次,之后不再登录,就像 Facebook 应用程序一样。 因此,一旦用户登录,我就会收到来自 Backand 的令牌。据我所知,我假设我必须将该令牌保存在 localStorage 中(我正在做,并且正在工作)。但是从那时起,我不明白我需要做什么才能在用户再次访问时重新登录。
我已经尝试在我的 angular "run" 方法中查找本地存储中的现有令牌,如果存在,我将其粘贴到我的 http headers 中。 (认证服务中存在以下函数,在"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()" 调用会解释我刚刚添加的授权 header。但这就是我的误解;事情不是这样的。
所以我的问题是:如何使用该令牌自动登录返回的(现有)用户?我似乎无法在 Backand 文档中找到用于该目的的任何函数。
提前致谢!
使用后端 Vanilla SDK,此代码:
backand.user.getUserDetails(false)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
如果他通过身份验证,将获取用户详细信息,否则将获取 null。 所以你不需要再次登录用户。 false 确保它在内部检查它而不联系后端。您应该围绕它构建您的应用程序。
Kornatzky,你的评论让我找到了问题的答案。
问题是我将我的 appName
、anonymousToken
和 signUpToken
包含在初始化 (BackandProvider.init) 中。删除 anonymousToken
并添加 useAnonymousTokenByDefault:false
解决了问题。
getUserDetails
现在 returns 我当前登录的用户而不是 Guest 对象。感谢您的帮助!