我正在将Parse.com云代码迁移到托管解析服务器。 Mongodb已经迁移。
该代码应该根据其google plus id检索用户的sessionToken。查找操作成功并返回用户,但用户没有任何sessionToken。
关于mongodb的编辑: 直接检查mongo db - _User表记录包含_session_token值。在_Session表中我找不到_session_token。此外,我找不到_User的任何条目(我在搜索时连接了_User $。)
代码是(或多或少)所以:
Parse.Cloud.define("getParseUserSessionToken", function(request, response) {
var googlePlusId = ...;
// here we're doing some code to get the google id
// assume it is set
var googleIdQuery = new Parse.Query(Parse.User);
googleIdQuery.equalTo(GOOGLE_PLUS_ID_FIELD_KEY, googlePlusId);
searchUserQuery.find({
useMasterKey: true
}).
then(function(users) {
if (users && users.length > 0) {
var user = users[0]; //user exist
var token = user.getSessionToken();
if (token) {
//user exist, return sessionToken
// ....
} else {
// CODE REACHES HERE AS THERE'S NO TOKEN
// return error: "no token"
}
}
}
如您所见,我将userMasterKey: true
传递给find()
使用调试器,我可以看到我的用户拥有数据,但没有令牌。我尝试了几件事,但没有任何作用。
知道我错过了什么吗?