是否可以检查解析用户是否从服务器端登录?

时间:2019-05-02 10:34:20

标签: javascript node.js parse-platform

我正在客户端登录/注册用户,但是我想检查在页面登陆时是否从服务器登录了他们的请求。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您应该让服务器端检查用户是否已通过身份验证,这是一种安全的方法,因为您不信任验证客户端,因为用户可以更改客户端代码。

答案 1 :(得分:0)

您可以创建一个Cloud Code函数来检查用户是否已登录。 一些简单的例子:

Parse.Cloud.define('isLoggedIn', async (req) => {
  const { user } = req;

  if (!user) {
    return { isLogged: false };
  }

  const sessionToken = user.getSessionToken();

  try {
    const result = await Parse.Cloud.httpRequest({
      url: `${Parse.serverURL}/sessions/me`,
      headers: {
        "X-Parse-Application-Id": Parse.applicationId,
        "X-Parse-JavaScript-API-Key": Parse.javaScriptKey,
        "X-Parse-Session-Token": sessionToken,
      }
    });

    return { isLogged: true }
  } catch (e) {
    return { isLogged: false }
  }
});

然后您可以像下面这样使用此云代码功能:

const isLoggedInFunc = async () => {
  const { isLoggedIn } = await Parse.Cloud.run("isLoggedIn");

  if (isLoggedIn) {
    // if logged in do what you want
  } else {
    // if not logged in do what you want
    // for example redirect user to login page or something ...
  }
}

希望这会有所帮助:)