关于Parse.User.getSessionToken的文档指出:


  返回该用户的会话令牌,如果该用户已经登录,或者是使用主密钥查询的结果。否则,返回未定义。


我正在使用JS SDK。使用主密钥创建并保存新用户时,可以使用user.getSessionToken在回调中获取会话令牌。很好

当我使用主密钥查询用户时,将返回该用户,并且我尝试以相同的方式获取会话令牌,并且该令牌是未定义的。

我已经确认该用户有一个有效的会话,但结果始终相同。

我正在尝试登录查询的用户。

become()函数需要会话令牌。

任何帮助,将不胜感激。

谢谢!

最佳答案

因此,事实证明,创建并保存新用户会生成一个会话令牌,一个人可以在保存后使用getSessionToken()来获取该令牌:

//create newUser and save username/password

return newUser.save(null, {userMasterKey:true})
    .then( function(user) {
        var token = user.getSessionToken();
        //use that token
});


查询用户并尝试获取令牌将不起作用:

userQuery.first({useMasterKey:true})
     .then(function(user) {
            if(user)
            {
               var token = user.getSessionToken();
               //token is null
            }


我正在执行SSO登录,并将SAML服务器中的令牌用作解析用户用户名。我的移动客户端用户登录到SSO服务器并为客户端提供了解析会话令牌后,我需要登录到Parse。

对于现有的解析用户,解决方案是查询用户,使用主密钥将密码更改为随机的超级重复密码,使用该新密码登录,然后获取会话令牌并将其发送。

希望这对某人有帮助。

关于javascript - 解析服务器user.getSessionToken()未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37754290/

10-10 02:53