我不确定这是否可能,但我正在尝试将 Supabase 与 Node.js 一起使用。我从 React 前端获取代码,这个link,工作正常。
下面是我的代码
客户端.js
const { createClient } = require('@supabase/supabase-js')
const supabaseUrl = "MY_URL"
const public_anon_key = "MY_ANON_KEY"
const supabase = createClient(supabaseUrl,public_anon_key)
exports.supabase = supabase
app.js
const { supabase } = require('./client')
async function signOut() {
/* sign the user out */
await supabase.auth.signOut();
}
async function signInWithGithub() {
/* authenticate with GitHub */
await supabase.auth.signIn({
provider: 'github'
});
}
async function printUser() {
const user = supabase.auth.user()
console.log(user.email)
}
signInWithGithub()
printUser()
signOut()
我是 Node.js 新手,我怀疑 Promises 缺少某些问题。 是否可以从 Supabase 检索
user
数据,如果可以,我的代码缺少什么?
谢谢
编辑:标题
我不知道 Supabase 是做什么的,但问题似乎与 Promise 有关
尝试按如下方式更改你的app.js
const { supabase } = require('./client')
function signOut() {
/* sign the user out */
supabase.auth.signOut();
}
function signInWithGithub() {
/* authenticate with GitHub */
return supabase.auth.signIn({
provider: 'github'
});
}
function printUser() {
const user = supabase.auth.user()
console.log(user.email)
}
signInWithGithub().then(() => {
printUser()
return signOut()
})
由于
@supabase/supabase-js
至 v2(在撰写本文时)适用于 JAMstack 开发人员,因此确实需要一些额外的配置才能将其用于 Node.js 环境。
您将需要一些额外的配置:
// ANON_KEY and ANON_URL are string constants from your project
createClient(ANON_URL, ANON_KEY, {
auth: { persistSession: false, autoRefreshToken: false },
})
这将禁止客户端尝试存储和刷新会话,因为服务器/脚本环境中没有本地存储。