如何使用 Supabase 与另一个身份验证提供者进行身份验证?

How to authenticate with another auth provider using Supabase?

我正在制作一个网站,基本上可以在 Supabase 数据库中读取和写入数据。它正在使用 FluffyScratch 身份验证。 Supabase 不支持 FluffyScratch,因此我需要实施身份验证解决方案。我进行了搜索,发现 Supabase 支持其他身份验证方法,我需要使用 JWT。我已经有了一些签署 JWT 的代码。

使用FluffyScratch认证方式。首先,我将用户发送到 FluffyScratch 页面,然后用户使用私人代码作为查询参数重定向回我的网站,然后在 SvelteKit 端点上获取 FluffyScratch 验证 API 以查看他们的私人代码是否真的是有效并且用户拥有他们所说的 Scratch 帐户。

所以我认为完成这项工作的下一部分是让 JWT 向 Supabase 进行身份验证。我一直在四处寻找,但我对如何让 Supabase 接受这个令牌有点困惑。 GoTrue 中的注册功能只接受电子邮件、密码或 phone 号码,所以我认为我不会成功。

如果你碰巧遇到这个问题,我在我的案例中所做的可能对你有用。

我正在使用 jsonwebtoken NPM 包签署我自己的 JWT。我正在使用 dotenv 获取我的 JWT 签名密钥(还有我的 supabase url 和密钥),因为 VITE_ 前缀环境变量暴露在客户端上。然后我可以使用相同的 jsonwebtoken NPM 包来验证签名,然后我的用户可以使用 FluffyScratch,我可以使用 Supabase。