因此我目前在我的SvelteKit应用中使用node-steam-openid软件包来允许用户通过Steam登录。这样做很好,它在服务器端返回用户的steam_id
。
但是,Steam不支持作为Supabase提供商。让用户使用电子邮件/密码或提供的任何其他选项注册是没有任何意义的。
如果可能的话,我想使用SvelteKit auth helper,但我不确定具体如何使用。
我应该注意到我启用了RLS,并且有很多操作用户应该只能在自己的行上进行。
我想我可以使用Supabase JWT secret来用jsonwebtoken
包签署一个令牌,然后在用户的event.locals
或其他东西中设置它。但是我遇到了管理刷新令牌的问题。看起来您还可以创建一个Supabase Policy来检查JWT,例如,检查其中的steam_id
是否与他们试图修改的行的steam_id
匹配。
我注意到supabase.auth.admin.createUser()
函数在the docs中将email
和password
列为可选。所以也许我可以在元数据中指定steam_id
?但是supabase.auth.signInWithPassword()
“需要电子邮件和密码或电话号码和密码”。
我需要确保auth.users
以某种方式链接到我自己的public.users
(使用steam_id
作为主键)。当新用户通过Steam登录时,他们应该被添加到两个表中。
我还想使用SvelteKit hooks.server.ts
中间件来检查用户会话,以了解更复杂的操作。
1条答案
按热度按时间myzjeezk1#
如果我做了这样的事呢
然后,为了让用户登录(以及我们将来要做的事情,因为他们现在已经注册了),我们执行以下操作
然而,似乎
supabase.auth.admin.getUserById
需要在服务器上,但supabase.auth.signInWithPassword
需要在客户端上?