身份验证不适用于 Supabase 和 Node.js

问题描述 投票:0回答:2

我不确定这是否可能,但我正在尝试将 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
数据,如果可以,我的代码缺少什么?

谢谢

编辑:标题

javascript node.js asynchronous async-await supabase
2个回答
0
投票

我不知道 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()

})


0
投票

由于

@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 },
})

这将禁止客户端尝试存储和刷新会话,因为服务器/脚本环境中没有本地存储。

© www.soinside.com 2019 - 2024. All rights reserved.