如何使用cURL防止解析服务器中的多次登录 由于我的应用程序是C++,没有可用的解析API,所以我必须使用 CURL< /COD>来完成所有的事情。我的应用程序对用户进行身份验证,不允许多次登录,通过查看“我看不到一个解决方案”来检查用户是否已登录,而不会因请求过多而影响它,一个不需要经常访问数据库的解决方案将是最好的解决方案,就像它提供了一个很好的方法一样,但是,是否可以仅使用cURL获得这样的结果?

如何使用cURL防止解析服务器中的多次登录 由于我的应用程序是C++,没有可用的解析API,所以我必须使用 CURL< /COD>来完成所有的事情。我的应用程序对用户进行身份验证,不允许多次登录,通过查看“我看不到一个解决方案”来检查用户是否已登录,而不会因请求过多而影响它,一个不需要经常访问数据库的解决方案将是最好的解决方案,就像它提供了一个很好的方法一样,但是,是否可以仅使用cURL获得这样的结果?,c++,.net,curl,parse-platform,parse-server,C++,.net,Curl,Parse Platform,Parse Server,对于您的情况,我建议您编写一个云代码函数,该函数将负责接收用户名和密码,登录解析服务器,删除同一用户的其他现有会话(因此其他设备将被注销),并返回会话令牌。然后,您可以使用单个卷曲命令从C++应用程序调用此云代码函数。代码应如下所示: 云代码功能: Parse.Cloud.define('logIn', async req => { const username = req.params.username; const password = req.params.password;

对于您的情况,我建议您编写一个云代码函数,该函数将负责接收用户名和密码,登录解析服务器,删除同一用户的其他现有会话(因此其他设备将被注销),并返回会话令牌。然后,您可以使用单个卷曲命令从C++应用程序调用此云代码函数。代码应如下所示:

云代码功能:

Parse.Cloud.define('logIn', async req => {
  const username = req.params.username;
  const password = req.params.password;
  const user = await Parse.User.logIn(username, password);
  const sessionToken = user.getSessionToken();
  const oldSessionsQuery = new Parse.Query(Parse.Session);
  oldSessionsQuery.equalTo('user', user);
  oldSessionsQuery.notEqualTo('sessionToken', sessionToken);
  const oldSessions = await oldSessionsQuery.find({ useMasterKey: true });
  await Parse.Object.destroyAll(oldSessions, { useMasterKey: true });
  return sessionToken;
});
Curl命令:

curl -X POST \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "username": "the user name goes here", "password": "the password goes here" }' \
  https://your.server.url/functions/logIn

是否需要检查尝试登录某个设备的用户是否已登录另一个设备?或者你想检查用户是否已经登录到当前设备,这样他们就不需要再次登录了吗?@davidacê我想检查用户是否已经登录到应用程序中,以及是否有其他人使用他们的密码登录,以便断开前一个用户的连接,我不想让2个人或更多的人使用相同的登录和共享,谢谢你的想法,但是问题是没有C++的解析API,也在我的WiFrm应用程序中,因为它是C++ CLI,所以甚至不支持lambda表达式。我必须通过
cURL
命令来完成这一切。我想你不明白我提出的解决方案。云代码功能存在于服务器端(而不是在C++应用程序中)。您只需将我发送给您的代码放在
main.js
文件中,然后用它启动解析服务器。在客户端(C++应用程序)中,只需要运行我发送给您的卷曲命令。它将在服务器端调用代码。