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