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

查看:85
本文介绍了云代码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中使用.用户登录所在的WebApp,您可以使用该功能获取当前用户.

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.

要使用户调用 Cloud Code 函数或对对象进行操作( beforeSave afterSave beforeDelete 等),您可以使用 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天全站免登陆