ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – Parse – 为什么user.getSessionToken()返回undefined

2019-08-24 18:37:18  阅读:147  来源: 互联网

标签:parse-platform javascript


我正在使用云功能来获取用户的sessionToken.文档说,当使用主密钥获取用户对象时,此方法仅返回正确的值.但是,即使我使用主密钥,我仍然会得到未定义的结果.我的代码出了什么问题?

Parse.Cloud.define("hello", function(request, response) {
    Parse.Cloud.useMasterKey();
    Parse.Promise.as().then(function(){
        var query = new Parse.Query(Parse.User);
        return query.first({useMasterKey:true});
    }).then(function(user){
        return user.fetch({useMasterKey:true});
    }).then(function(user){
        response.success(user.getSessionToken());
    });
});

解决方法:

这不起作用,因为当您通过云代码获取他时,用户没有登录.要使getSessionToken起作用,您需要已经有一个登录用户.因为,否则CloudCode将如何知道您想要获得的用户会话? (如果他登录了多个设备)你的代码也在返回数据库中的第一个用户,那真的是你想要的吗?

无论哪种方式,您都需要通过云代码登录用户,然后返回会话令牌.但是我在没有密码的情况下做了一些麻烦(只是通过调用user.logIn(),它应该工作所以试一试)所以我找到的唯一解决方案是更改用户的密码然后登录.为什么你需要获取用户的会话令牌吗?如果您不介意更改用户密码,可以执行以下操作:

var password; //create new random passowrd
query.first({useMasterKey: true}).then(function(user){
    user.set("password", password);
    return user.save();
}).then(function(user){
    return Parse.User.logIn(user.get("username"), password);
}).then(function(user){
    return user.getSessionToken();
});

标签:parse-platform,javascript
来源: https://codeday.me/bug/20190824/1710895.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有