Supertokens - 通过用户邮箱获取用户ID

Supertokens - get userid by user email

使用 supertokens(托管),是否有直接的方法通过电子邮件查询另一个用户的 userId?我找到的唯一解决方案是获取所有用户并搜索它,这显然效率不高。

根据您使用的配方和 SDK,有相应的功能可用。例如,对于 NodeJS SDK,您有:

电子邮件密码配方

getUserByEmail

第三方配方

getUsersByEmail(请注意,这将 return 一组用户,因为您可以让多个用户使用同一电子邮件注册,但使用不同的 OAuth 提供商)

无密码食谱

getUserByEmail(如果用户不存在,此功能将return Promise<undefined>,如果他们使用phone号码注册)

第三方邮箱密码

getUsersByEmail

第三方无密码

getUsersByEmail

其他SDK

其他后端SDK,可以查看他们的文档:

  • Python SDK -> 选择你的食谱 -> 选择 asynciosyncio 模块(取决于你的网络框架执行环境)然后你会看到该配方公开的功能列表。其中之一将允许您从他们的电子邮件中获取用户。

  • Golang SDK -> 点击“recipe”项,选择你的recipe,你会看到该recipe公开的函数列表。其中之一将允许您从他们的电子邮件中获取用户。

直接使用 SuperTokens 核心 API

API Spec 中,您可以看到每个食谱的部分。根据用户的注册方式,您可以使用他们的电子邮件作为查询参数来查询 /recipe/user GET API。请务必在 GET 请求中传入正确的 rid header。