云代码 Parse.User.current() 返回 null [英] Cloud Code Parse.User.current() return null

查看:18
本文介绍了云代码 Parse.User.current() 返回 null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在 Cloud Code 中使用这个函数时 Parse.User.current() 返回 null.
我使用 parseExpressCookieSession 登录.
有什么建议吗?

When i use this function in Cloud Code Parse.User.current() return null.
I'm using parseExpressCookieSession for login.
Any advice?

var express = require('express');
var expressLayouts = require('cloud/express-layouts');
var parseExpressHttpsRedirect = require('parse-express-https-redirect');
var parseExpressCookieSession = require('parse-express-cookie-session');

// Required for initializing enter code hereExpress app in Cloud Code.
var app = express();

// Global app configuration section
app.set('views', 'cloud/views');
app.set('view engine', 'ejs'); // Switch to Jade by replacing ejs with jade here.
app.use(expressLayouts);          // Use the layout engine for express
app.set('layout', 'layout');
app.use(parseExpressHttpsRedirect());  // Require user to be on HTTPS.
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('helloworld'));
app.use(parseExpressCookieSession({
  fetchUser: true,
  cookie: { maxAge: 3600000 * 24 }
}));    

Parse.Cloud.beforeSave('Menu', function(request, response) {
    var Business = Parse.Object.extend('Business');
    var query = new Parse.Query(Business);

    query.equalTo('profile', Parse.User.current().get('profile'));
    query.find({
        success: function(business) {
            console.log(business);
            response.success();
        },
        error: function(error) {
            response.error(error.message);
        }
    });
  });

  app.listen();

这是我用来登录/注销的代码

This the code that i use to login/logout

app.post('/login', function(req, res) {
  Parse.User.logIn(req.body.username, req.body.password).then(function(user) {
    // Login succeeded, redirect to homepage.
    // parseExpressCookieSession will automatically set cookie.
    res.redirect('/');
  },
  function(error) {
    // Login failed, redirect back to login form.
    res.redirect('/');
  });
});

// Logs out the user
app.post('/logout', function(req, res) {
  Parse.User.logOut();
  res.redirect('/');
});

推荐答案

这是一个老问题,但回答以供将来参考.

It is an old question but answering for future reference.

Parse.User.current() 在客户端使用时在 Javascript SDK 中工作,例如.用户登录的 Web 应用程序,您可以使用该功能获取当前用户.

Parse.User.current() works in Javascript SDK when used in clients ex. WebApp where users log in and the you can fetch the current user with that function.

让用户调用云代码函数或对对象进行操作(beforeSaveafterSavebeforeDelete 等)您使用 request.user 属性,它包含向 Parse.com 发出请求的用户.

To get the user calling a Cloud Code function or doing an operation on an object (beforeSave,afterSave,beforeDelete and so on) you use the request.user property it contains the user issuing the request to Parse.com.

关于 Parse.Cloud.FunctionRequest 的更多细节在这里:https://parse.com/docs/js/api/classes/Parse.Cloud.FunctionRequest.html

More details about Parse.Cloud.FunctionRequest here: https://parse.com/docs/js/api/classes/Parse.Cloud.FunctionRequest.html

示例代码:

Parse.Cloud.beforeSave('Menu', function(request, response) {
   var requestUser = request.user; 
   // instance of Parse.User object of the user calling .save() on an object of class "Menu"

   // code cut for brevity
});

这篇关于云代码 Parse.User.current() 返回 null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆