Supabase 인증은 다양한 방법을 지원하는 강력하고 유연한 인증 서비스입니다. 이메일/비밀번호, 매직 링크, 소셜 로그인 등을 포함한 여러 인증 방법을 지원합니다. 주요 기능과 구현 방법을 자세히 살펴보겠습니다:
1.이메일 및 비밀번호 인증:
yarn add @supabse/supabse-js
import { createClient } from '@supabase/supabase-js';
const supabaseUrl = 'https://your-project-url.supabase.co';
const supabaseKey = 'your-anon-key';
const supabase = createClient(supabaseUrl, supabaseKey);
// 회원가입
const signUp = async (email, password) => {
const { user, error } = await supabase.auth.signUp({
email,
password,
});
if (error) console.error('회원가입 에러:', error);
else console.log('회원가입 성공:', user);
};
// 로그인
const signIn = async (email, password) => {
const { user, error } = await supabase.auth.signIn({
email,
password,
});
if (error) console.error('로그인 에러:', error);
else console.log('로그인 성공:', user);
};
const sendMagicLink = async (email) => {
const { error } = await supabase.auth.signIn({ email });
if (error) console.error('매직 링크 전송 에러:', error);
else console.log('매직 링크 전송 성공:', email);
};
const signInWithProvider = async (provider) => {
const { user, session, error } = await supabase.auth.signIn({ provider });
if (error) console.error('소셜 로그인 에러:', error);
else console.log('소셜 로그인 성공:', user);
};
const sendOTP = async (phone) => {
const { error } = await supabase.auth.signIn({ phone });
if (error) console.error('OTP 전송 에러:', error);
else console.log('OTP 전송 성공:', phone);
};
const verifyOTP = async (phone, token) => {
const { user, error } = await supabase.auth.verifyOTP({ phone, token });
if (error) console.error('OTP 인증 에러:', error);
else console.log('전화 인증 성공:', user);
};
import jwt from 'jsonwebtoken';
const verifyToken = (req, res, next) => {
const token = req.headers['authorization'];
if (!token) return res.status(403).send('토큰이 제공되지 않았습니다.');
jwt.verify(token, supabaseKey, (err, decoded) => {
if (err) return res.status(500).send('토큰 인증 실패.');
req.userId = decoded.id;
next();
});
};
Supabase 인증은 웹 또는 모바일 애플리케이션에 쉽게 통합할 수 있는 강력하고 유연한 인증 시스템을 제공합니다. 전통적인 이메일/비밀번호 로그인, 비밀번호 없는 매직 링크, 소셜 로그인, 전화 인증 등 다양한 인증 방법을 지원합니다. 사용하기 쉽고 포괄적인 문서를 제공하여 개발자들이 애플리케이션에 인증을 구현하는 데 매우 유용합니다.