2014-08-29 14 views
6

जब मैं बादल संहिता में इस सुविधा का उपयोग Parse.User.current()null लौट लौट आते हैं।
मैं प्रवेश के लिए parseExpressCookieSession उपयोग कर रहा हूँ।
कोई सलाह?बादल संहिता Parse.User.current() अशक्त

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(); 

इस कोड है कि मैं के लिए लॉग इन करने के लिए उपयोग/लॉगआउट

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('/'); 
}); 

उत्तर

8

यह एक पुराने सवाल लेकिन भविष्य में संदर्भ के लिए जवाब देने के लिए है।

Parse.User.current() क्लाइंट में उपयोग किए जाने पर जावास्क्रिप्ट एसडीके में काम करता है। वेब ऐप जहां उपयोगकर्ता लॉग इन करते हैं और आप वर्तमान उपयोगकर्ता को उस फ़ंक्शन के साथ ला सकते हैं। (BeforeSave, afterSave, beforeDelete और इसी तरह)

एक बादल संहिता फ़ंक्शन को कॉल या एक वस्तु पर एक ऑपरेशन कर उपयोगकर्ता प्राप्त करने के लिए आप request.user संपत्ति इसमें उपयोग करें उपयोगकर्ता Parse.com पर अनुरोध जारी कर रहा है।

अधिक Parse.Cloud.FunctionRequest यहाँ के बारे में विवरण: 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 
}); 
+0

लिंक अब काम करता है, और वहाँ parseExpressCookieSession पर कोई प्रलेखन कहीं भी है कि मैं मिल सकती है। –

+0

लिंक को अपडेट कर दिया गया है क्योंकि पार्स ने अपने दस्तावेज़ों के लिए यूआरएल बदल दिया है। विशिष्ट parseExpressCookieSession के लिए के रूप में आप मूल प्रश्न पोस्टर मैं सिर्फ CloudCode में और पार्स जे एस एसडीके में इस्तेमाल पार्स उपयोगकर्ता के बीच अंतर का जवाब दे रहा था से संपर्क करना होगा। – zagu

+0

धन्यवाद zagu - रैंडी –

संबंधित मुद्दे