微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以编程方式为用户创建新的 Parse.Session,无需用户密码

如何解决以编程方式为用户创建新的 Parse.Session,无需用户密码

我正在使用现有的 Parse 服务器,我目前正在添加 OAuth 系统,以便外部应用程序可以以 Parse.User 的名义进行连接。

我为代码和令牌创建了不同的类,现在我的外部应用程序可以发送带有 accesstoken 的请求,对应于他们的应用程序和用户(授予访问权限)。

我正在寻找一种方法通知 Parse 服务器请求中的“登录用户”是授权 OAuth 应用程序的最终用户。为此,我在 Parse 服务器中间件之前创建了一个快速中间件处理请求,从请求中提取访问令牌,获取正确的用户和应用程序,然后我想以编程方式创建一个 Parse.Session,获取令牌,并设置它在请求中作为 x-parse-session-token。这样,下一个处理程序 Parse 会将请求视为经过身份验证并由最终用户执行。

我的问题是我找不到以编程方式创建会话的方法,我知道 Parse.User.logIn,但只能使用密码。

我尝试了以下方法

const oAuthSession = await new Parse.Session().save({
  user: user // user got from Parse.Query(Parse.User) with masterKey
},{ useMasterKey: true })

但是出现 Cannot modify readonly attribute user 错误

任何以编程方式创建没有密码的 Parse.Session 的隐藏方法

解决方法

正如@DaviMacêdo 在社区论坛中指出的那样:https://community.parseplatform.org/t/create-new-parse-session-programmatically-for-a-user-without-their-password/1751

我们可以直接在请求字段中注入用户,会被Parse拾取:https://github.com/parse-community/parse-server/blob/f6a41729a7a3adc6bd5310cefb3458835b4abb58/src/middlewares.js#L199

const user = await new Parse.Query(Parse.User).get(‘idOfUser’);
req.userFromJWT = user;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。