在Backand

时间:2017-05-09 20:30:03

标签: angularjs authentication backand

我有一个简单的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文档中找到任何用于此目的的函数。

提前致谢!

2 个答案:

答案 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。

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

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