如何使用 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 进行交互。
接下来,你可以观看这些视频: