如何使用 Nextjs 设置 Supabase 进行身份验证 | Supabase Auth
Supabase 是什么?
Supabase 提供身份验证、数据库、存储和实时功能,让开发人员能够构建全栈应用。此后端即服务 (BaaS) 是 Firebase 的热门替代品,采用开源技术构建。
Supabase Auth 支持轻松的应用程序身份验证,支持 OAuth、电子邮件密码和无密码方法。
**注意**:本博客是我 YouTube 频道上的视频系列的一部分。您也可以查看视频版本。
如何设置 Supabase 项目?
现在我们需要一个 nextjs 应用程序。
如何设置 Nextjs 15?
npx create-next-app supabase-auth-yt
npm install @supabase/supabase-js @supabase/ssr
我还安装了 daisyui(一个 tailwind ui 库)用于样式设置:
npm i -D daisyui
NEXT_PUBLIC_SUPABASE_URL=NEXT_PUBLIC_SUPABASE_ANON_KEY=
import { createServerClient } from '@supabase/ssr'
import { cookies } from 'next/headers'
export async function createClientForServer() {
const cookieStore = await cookies()
return createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
{
cookies: {
getAll() {
return cookieStore.getAll()
},
setAll(cookiesToSet) {
try {
cookiesToSet.forEach(({ name, value, options }) =>
cookieStore.set(name, value, options),
)
} catch {
// The `setAll` method was called from a Server Component.
// This can be ignored if you have middleware refreshing
// user sessions.
}
},
},
},
)
}要从服务器与 Supabase 交互,我们必须为服务器端代码创建一个客户端。代码也是从 supabase 文档中复制而来。
对于客户端代码,我们需要在 `utils/supabase/client.js` 文件中创建一个客户端:
'use client'
import { createBrowserClient } from '@supabase/ssr'
const createClientForBrowser = () =>
createBrowserClient(
process.env.NEXT_PUBLIC_SUPABASE_URL,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
)
export default createClientForBrowser现在,您可以使用这些客户端从 nextjs 项目与 supabase 进行交互。
接下来,你可以观看这些视频: