解析服务器云代码 - 检查用户名

Posted

技术标签:

【中文标题】解析服务器云代码 - 检查用户名【英文标题】:Parse Server Cloud Code - Checking Username 【发布时间】:2016-02-24 15:57:27 【问题描述】:

我刚刚使用 AWS 和 Mongolab 从解析切换到解析服务器。目前我尝试在服务器的main.js中向云部分写一些验证。

添加下面的代码后,这是保存到“帖子”类之前的验证。我希望它检查登录用户的用户名是否等于指定值。但是,添加此内容后,我什至无法使用我曾经登录过的任何用户登录我的应用程序。它说密码或用户名错误。

  Parse.Cloud.beforeSave('posts', function (req, res) 

  var uname = 'xxxxx';

   var user = Parse.User.current();
  user.fetch().then(function(fetchedUser)
  uname = fetchedUser.getUsername();    
   , 
  );

  if (uname != 'michael') 
   res.error('This user is not allowed');

    else 
   res.success();
   

   );

我也使用下面的云代码,但它工作正常:

 Parse.Cloud.beforeSave('tweets', function (req, res) 

 if (req.object.get('name') != 'jeniffer') 
 res.error('This user is not allowed');

  else 
   res.success();
 

 );

【问题讨论】:

【参考方案1】:

代码有两个主要问题。首先,Parse.User.current() 不能与parse-server 一起使用,其次,promise 语法有点错误。试试这个:

Parse.Cloud.beforeSave('posts', function (req, res) 
  req.user.fetch().then(function(fetchedUser)
    var uname = fetchedUser.getUsername();
    if (uname !== 'michael') 
      res.error('This user is not allowed');
     else 
      res.success();
    
  , function(err) 
    res.error(err);
  );
);

另外,posts 听起来像是一个奇怪的集合名称。应该是Post

【讨论】:

以上是关于解析服务器云代码 - 检查用户名的主要内容,如果未能解决你的问题,请参考以下文章

多多云手机提示未能解析此远程名称啥意思

云服务器连接失败如何检查和处理的方法

DevCloud让代码检查更科学

DevCloud让代码检查更科学

颤动检查云Firestore集合中是不是存在用户ID

提升软件质量?为什么不试试华为云CodeArts Check