javascript - 解析无法检索用户电子邮件

标签 javascript parse-platform

我正在使用最新版本的 Parse Server,在发送 .js 文件之前进行 Typescript 编译。请注意,整个问题特定于云代码,而不是客户端实现。

到目前为止,这一直运行得很好,但现在我发现了一个我真的不知道如何解决的问题。考虑一个用于处理电子邮件事件的类,它有一个方法用于查找给定 ID 的用户电子邮件并向他发送消息:

async sendEmailToUserID(userId: string, subject: string, text: string){

    const res = await new Parse.Query("User").equalTo("objectId", userId).find();
    if(res){
        const user = res[0];
        const email =  user.get("email");
        return await this.sendEmail(email, subject, text);
    }
}

我认为这个功能非常简单并且很容易解释。嗯,事实是,find() 函数可以正确检索用户的对象,但是 .get("email") 函数永远不会工作:它总是返回“未定义”。 p>

有人知道为什么会发生这种情况吗?

PD:是的,任何给定用户都存在“电子邮件”字段。

最佳答案

电子邮件是一个敏感字段,在发送到客户端进行匿名请求之前会从服务器中删除。

正如您所注意到的,您可以将“userMasterKey”添加到客户端查询中,但您永远不应该这样做,因为 masterKey 是一个 secret ,解析服务器的整个安全性取决于保密(如密码)。

使用主 key 在服务器、云代码或 php 服务器上进行查询是可以的,但在客户端代码(浏览器中的 ios、js、安卓等)

您可以使电子邮件和其他敏感字段可供经过身份验证的用户使用。这是一个新功能,尚未有详细记录,但您可以从测试中看到它是如何使用的:https://github.com/parse-community/parse-server/blob/f2c332ea6a984808ad5b2e3ce34864a20724f72b/spec/UserPII.spec.js#L526

关于javascript - 解析无法检索用户电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691689/

相关文章:

javascript - 无法在 QuickBlox 中使用 JavaScript SDK 根据标签列出用户

javascript - 带有大图像的 Facebook 自定义故事 - Open Graph with Javascript

ios - 在 NSMutableArray Parse iOS 中删除 currentUser

android - ParseInstallation 保存后解析 deviceToken 为空

javascript - 将 CSS 类添加到数组中的单个元素

javascript - Gulp "watch"为外部 API 提供代理

swift - Parse.com 安装 - 设备上打开的时间

ios - 解析查询 - 将 OR 语句与 AND 组合

java - 无法给变量赋值

javascript - 如何以动态形式创建动态元素