Parse Javascript SDK -- 将客户端 `user` 保存为服务器端 ` Parse.User.current()`

2024-03-20

我可能在概念上做错了事情,所以请告诉我我是否错了。

我正在使用 Parse 的 Facebook 登录来登录用户客户端。然后我尝试发布这个user object到我的服务器,这样我就可以在服务器端拥有该用户对象,但我在文档中找不到与此相关的任何内容。

我是否必须简单地通过user.objectId然后在服务器端重新获取该用户?或者有没有办法实际传递这个用户然后将其设置为Parse.User.current()在服务器上?


所以我只需要获得授权sessionToken从客户端登录并将其发布到服务器端。

这是客户端 Facebook 登录。fblogin当用户单击登录按钮时调用。我还省略了基本的 Parse/FB 初始化:

函数 fblogin() {

    console.log("fblogin -- start");

    Parse.FacebookUtils.logIn(null, {
            success: function(user) {

                if (!user.existed()) {
                    postFBLogin(user);
                } else {

                    console.log("fblogin -- else -- user.sessionToken = " + user._sessionToken);
                    postFBLogin(user);
                }
            },
            error: function(user, error) {
                alert("User cancelled the Facebook login or did not fully authorize. Error =" + error.message);
            }
    });
}


function postFBLogin(user) {

    console.log("postFBLogin -- start -- user = " + user);
    var sessionToken = user._sessionToken;

    // Post the login
    $.ajax({
      url: '/fblogin',
      type: 'post',
      // dataType: json,
      data: {sessionToken: sessionToken},
      success: function(data) {

          console.log("post error = " + data.errorCode + data.errorMessage);

          if (data.status === 200) {
               // window.location = '/home/language';
          }

          // If an error, show the prompt
          if (data.errorCode === 101) {
              $('#login-alert').show().text("Facebook login error.");
          }

      },
      error: function(error) {
           console.log("postFBLogin -- post error = " + data.errorCode + data.errorMessage);

      }

    });
}

然后在服务器端,我正在使用become() of the Parse.User上课sessionToken并将其转换为服务器端的授权用户:

exports.fblogin = function(req,res) {

    // var defaultLanguage = req.app.get('defaultLanguage');

    var sessionToken = req.body.sessionToken;

    Parse.User.become(sessionToken).then(function (user) {

      console.log("exports.fblogin -- become -- success");
      // The current user is now set to user.
      res.redirect('/home/language');

    }, function (error) {
      // The token could not be validated.
      console.log("exports.fblogin -- become -- error = " + error);

    });                          
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Parse Javascript SDK -- 将客户端 `user` 保存为服务器端 ` Parse.User.current()` 的相关文章

随机推荐

  • 无法在 CakePHP 中使用 MySQL

    这是我第一次安装框架 我很无知 我使用的是 OSX 10 7 我已将 cakephp 框架加载到 Library WebServer Documents cakephp我已经能够加载测试页面并消除一些错误和警告 现在我正在努力解决这个问题
  • 为什么fork程序printf执行更多时间[重复]

    这个问题在这里已经有答案了 来自fork 的手册页 http linux die net man 2 fork我读到 fork 创建父进程的副本 但无法理解为什么下面的程序printf执行8次 我读Linux 中 fork 的工作原理 ht
  • 有没有办法在没有 VPC 的情况下将静态 IP 分配给 AWS Lambda?

    我希望为我的 Lambda 分配一个静态 IP 该 IP 是通过 API 网关调用的 这是必需的 因为我从此 lambda 调用的下游系统仅接受来自白名单 IP 的 Web 请求 我通过与 lambda 关联的 VPC 成功实现了这一目标
  • 应用程序安装失败 - INSTALL_FAILED_VERIFICATION_FAILURE

    开始了一个新项目 并且this https gyazo com 08cf38899348817b28ec2b2978561d92发生在我身上 我在用Genymotion作为我的模拟器 不确定是什么导致了这个问题 我试过 重建项目 确保我有足
  • 表格布局中的单选按钮组与列对齐

    我正在开发一个反馈应用程序 其布局应与此屏幕类似 1 https i stack imgur com xn3kh jpg https i stack imgur com xn3kh jpg 我已经设计了布局的xml
  • 在 Spring boot 中设置 hibernate fetch size

    如何在Spring boot应用程序中设置hibernate jdbc fetch size属性 可以将其设置到application properties中吗 您应该使用前缀spring jpa properties 查看官方文档here
  • C++ lambda 将捕获作为函数指针

    我正在研究 C lambda 及其到函数指针的隐式转换 我的起始示例是使用它们作为 ftw 函数的回调 这按预期工作 include
  • 在 kotlin 中使用比较器

    我是 kotlin 新手 如何使用比较对象Collections Collections sort list myCustomComparator 我们怎样才能写一个MyCustomComparator科特林中的方法 private fin
  • 印刷撇号 + 宽字符串文字破坏了我的 wofstream (C++)

    我刚刚在处理不祥的印刷撇号 时遇到了一些奇怪的行为 而不是打字机撇号 与宽字符串文字一起使用时 撇号会破坏 wofstream 这段代码有效 ofstream file test txt file lt lt A B file close
  • 将对象作为参数发送给分叉的 Nodejs 进程

    Having fork MyProcess js foo 在主流程中和console log process argv 2 在分叉进程中将记录foo到我的控制台 然而 fork MyProcess js myProp bar 在主流程中和c
  • 颜色条最小值和最大值

    如何手动更改绘图中颜色条的最小值和最大值 例如 如何将下图中颜色条的最小值设置为 0 import plotly express as px import numpy as np df px data gapminder query yea
  • 将结果写入同一 Excel 文件中的 2 个不同工作表中

    你能教我Python是否可以写入同一个Excel文件 但2个不同的电子表格 选项卡 举例来说 我想挑选并写入以下4个网站的标题 并将它们写入同一个文件title xls中 但分别写入其Sheet1和Sheet 2中 www dailynew
  • jQuery - 从值数组中按值选择元素

    给出一些简单的 JSON 62689 62690 62697 我需要在 DOM 中选择与这些值相对应的三个元素 基于value属性 他们可能是一个
  • 处理存储在配置文件中的变量的最佳实践是什么?

    如果我使用配置文件来存储例如站点名称 数据库主机等 处理此问题的最佳实践是什么 sitename stackoverflow com 然后在函数中设置全局 sitename DEFINE SITENAME stackoverflow com
  • wxWidgets的EVT_CHAR_HOOK有什么作用?

    我正在维护一个 wxWidgets C 应用程序 它使用 EVT CHAR HOOK 来捕获高级窗口中的关键事件 我找不到此事件的任何真实文档 但我可以推测它以某种优先于 标准 关键事件的方式拦截关键事件 我刚刚发现的一件令人不安的事情是
  • Angular2 使用 ngFor 绑定数组

    我使用的是 angular2 在我的表单中 我通常创建一个模型类并将我的对象与表单绑定 然后通过 this myObject 进行访问 div class form group div
  • spring data redis主从配置

    以下是我的 jedis 配置 Bean public JedisConnectionFactory getJedisConnectionFactory JedisConnectionFactory jedisConnectionFactor
  • 从包含多个文档的语料库中删除行

    我的语料库中有 4000 个文本文档 作为数据清理的一部分 我想从每个文档中删除包含特定单词的行 例如 library tm doc corpus lt VCorpus DirSource C TextMining Prototype pa
  • iOS 13中的prefersStatusBar隐藏问题

    大家好 我想隐藏我的状态栏 in a View Controller但它似乎不起作用 我使用了该功能 override var prefersStatusBarHidden Bool return true 我还设置了View contro
  • Parse Javascript SDK -- 将客户端 `user` 保存为服务器端 ` Parse.User.current()`

    我可能在概念上做错了事情 所以请告诉我我是否错了 我正在使用 Parse 的 Facebook 登录来登录用户客户端 然后我尝试发布这个user object到我的服务器 这样我就可以在服务器端拥有该用户对象 但我在文档中找不到与此相关的任