Facebook使用Parse客户端站点登录,使用Express js的用户对象

时间:2015-01-23 18:41:52

标签: javascript express parse-platform facebook-javascript-sdk

我正在尝试使用Parse和Facebook Javascript SDK创建登录过程。身份验证在客户端没有问题,但我也需要在服务器端访问用户对象(由Parse SDK创建)。我怎样才能以最优雅的方式做到这一点?我想当我通过Parse登录Facebook时设置了一个cookie,所以我可以从服务器访问用户对象。或者我应该登录进程服务器端?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我面临同样的问题。事实证明,您可以使用服务器端身份验证或客户端身份验证。你不能混淆和匹配这两者。看看他们的official blog post about sessions

var parseExpressCookieSession = require('parse-express-cookie-session');

// In your middleware setup...
app.use(express.cookieParser('YOUR_SIGNING_SECRET'));
app.use(parseExpressCookieSession({ cookie: { maxAge: 3600000 } }));

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

另外,我在挖掘文档时遇到过这个问题:

  

您可以将Parse.User身份验证和会话管理添加到您的   使用parseExpressCookieSession中间件的Express应用程序。你刚才   需要在Cloud Code中调用Parse.User.logIn()和这个中间件   将自动为您管理用户会话。

     

您可以使用网络表单询问用户的登录凭据,以及   从此表单接收数据时,请在Cloud Code中登录用户。   调用Parse.User.logIn()后,此中间件将自动执行   在用户的浏览器中设置cookie。在后续HTTP请求期间   从同一个浏览器,这个中间件将使用此cookie   在Cloud Code中自动设置当前用户   ...

     

使用用户数据时,应尽可能使用HTTPS。   为保护您的应用和用户,请使用parseExpressCookieSession   中间件要求您使用HTTPS。为了您的方便,我们也   提供一个parseExpressHttpsRedirect中间件,用于重定向所有   对HTTPS的HTTP请求。