ShipNow LogoShipNow

认证

ShipNow 支持 Supabase Authentication 和 Auth.js 两种安全的用户认证方案,并支持多个认证提供商。

概述

ShipNow 提供两种认证方案供选择:

选择认证方案

两种方案都提供了出色的认证功能,但各有优势:

什么时候选择 Supabase Auth

  • 使用 Supabase 作为后端
  • 需要内置的用户管理功能
  • 想要使用实时数据订阅功能

什么时候选择 Auth.js

  • 需要自定义登录域名(Supabase 需要 $35/月)
  • 想要使用其他数据库
  • 需要灵活的提供商配置

配置认证提供商

你可以通过设置环境变量来切换认证提供商:

.env.local
# 使用 Auth.js (默认)
NEXT_PUBLIC_AUTH_PROVIDER=nextauth
 
# 或使用 Supabase
NEXT_PUBLIC_AUTH_PROVIDER=supabase

通用认证工具方法

两种实现都使用相同的认证工具方法,以提供一致的开发体验:

import { useUser, signIn, signOut } from '@/lib/auth/client';
 
// 获取当前用户
const user = useUser();
 
// 使用提供商登录
await signIn('github');
 
// 登出
await signOut();

获取当前用户

你可以使用 useUser hook 在客户端组件中获取当前用户。

'use client';
 
import { useUser } from '@/lib/auth/client';
 
export function UserProfile() {
  const user = useUser();
 
  if (!user) {
    return <div>请登录</div>;
  }
 
  return <div>欢迎 {user.email}</div>;
}

下一步

On this page

ShipNow Logo获取 ShipNow