Xây dựng hệ thống quản lý user với Auth Supabase trong 5 bước đơn giản

26/02/2026 P T P Chung 8 phút đọc 0 bình luận

Tại sao nên xây dựng hệ thống quản lý người dùng với Supabase Auth?

Khi phát triển một ứng dụng web hoặc mobile hiện đại, việc quản lý người dùng không chỉ đơn giản là lưu tên và mật khẩu. Nó bao gồm đăng ký, đăng nhập, khôi phục mật khẩu, xác thực qua email, quản lý phiên đăng nhập, và nhiều tính năng bảo mật khác. Nếu tự xây dựng toàn bộ, bạn sẽ mất nhiều thời gian và dễ gặp lỗ hổng bảo mật. Supabase Auth ra đời để giải quyết vấn đề này.

Supabase Auth là một dịch vụ quản lý xác thực người dùng được xây dựng trên nền tảng Supabase, cho phép bạn nhanh chóng tích hợp các tính năng đăng nhập, đăng ký, và bảo mật chỉ với vài dòng code. Không cần phải lo lắng về việc lưu trữ mật khẩu an toàn, tạo JWT token, hay quản lý phiên — tất cả đã được xử lý sẵn.

Các tính năng chính của Supabase Auth

Supabase Auth hỗ trợ nhiều phương thức đăng nhập khác nhau: - Email và mật khẩu: đăng ký và đăng nhập truyền thống, có xác thực email. - OAuth providers: đăng nhập qua Google, GitHub, GitHub, GitLab, Bitbucket, Azure, Apple, và nhiều nhà cung cấp khác. - Phone auth: xác thực qua SMS (tùy khu vực). - Magic link: gửi link đăng nhập qua email, không cần mật khẩu. - Row Level Security (RLS): bảo mật dữ liệu ở cấp độ dòng trong cơ sở dữ liệu.

Ngoài ra, Supabase Auth tự động tạo JWT token cho mỗi user, giúp bạn dễ dàng xác thực request từ client lên server.

Các bước xây dựng hệ thống quản lý user với Supabase Auth

1. Tạo dự án Supabase

Để bắt đầu, bạn cần truy cập vào Supabase Console và tạo một project mới. Chọn region phù hợp, đặt tên project, và đợi vài phút để Supabase khởi tạo môi trường cho bạn.

Sau khi project được tạo, bạn sẽ có: - URL database và API key. - Dashboard để quản lý users, roles, và policies.

2. Cấu hình Auth

Vào mục Authentication > Settings để cấu hình: - Site URL: địa chỉ ứng dụng của bạn (ví dụ: http://localhost:3000 nếu dev local). - Providers: chọn các nhà cung cấp OAuth bạn muốn hỗ trợ (Google, GitHub, v.v.). - Email templates: tùy chỉnh nội dung email gửi cho user.

3. Tích hợp Supabase Auth vào frontend

Supabase cung cấp thư viện chính thức cho nhiều framework:

React/TypeScript:
import { createClient } from '@supabase/supabase-js';

const supabase = createClient( import.meta.env.VITE_SUPABASE_URL, import.meta.env.VITE_SUPABASE_ANON_KEY );

Quảng cáo

300x250 In-Content Advertisement

Vue:
import { createClient } from '@supabase/supabase-js';

const supabase = createClient( import.meta.env.VITE_SUPABASE_URL, import.meta.env.VITE_SUPABASE_ANON_KEY );

JavaScript thuần:
const supabase = createClient('your-url', 'your-anon-key');

4. Các thao tác quản lý user

Đăng ký user mới

const { data, error } = await supabase.auth.signUp({
  email: '[email protected]',
  password: 'password123'
});

Đăng nhập

const { data, error } = await supabase.auth.signInWithPassword({
  email: '[email protected]',
  password: 'password123'
});

Đăng xuất

const { error } = await supabase.auth.signOut();

Kiểm tra trạng thái đăng nhập

const { data: { user } } = await supabase.auth.getUser();
console.log(user); // null nếu chưa đăng nhập

Lắng nghe thay đổi trạng thái auth

supabase.auth.onAuthStateChange((event, session) => {
  console.log(event, session);
});

5. Bảo mật dữ liệu với Row Level Security

Supabase Auth tích hợp chặt chẽ với PostgreSQL thông qua Row Level Security (RLS). Bạn có thể tạo policies để chỉ cho phép user truy cập dữ liệu của chính họ.

Ví dụ: tạo policy cho bảng profiles:

CREATE POLICY "Users can update own profiles." ON profiles
  FOR UPDATE TO authenticated
  USING ( auth.uid() = user_id );

Như vậy, chỉ user sở hữu dòng dữ liệu mới có quyền cập nhật.

Các lưu ý khi sử dụng Supabase Auth

- Lưu trữ API key: API key public của Supabase là an toàn để lưu trên client, nhưng không bao giờ lưu key private ở frontend. - Xác thực trên server: Nếu cần server-side logic, hãy xác thực JWT token bằng secret key từ Supabase. - Email verification: Nên bật xác thực email để tránh spam account. - Quản lý roles: Bạn có thể tạo custom roles trong database và gán quyền tương ứng.

Kết luận

Supabase Auth giúp bạn xây dựng hệ thống quản lý user một cách nhanh chóng, an toàn và dễ bảo trì. Thay vì tự implement authentication từ đầu, bạn có thể tập trung vào business logic của ứng dụng. Với các tính năng như OAuth providers, magic link, email verification, và Row Level Security, Supabase Auth đáp ứng hầu hết nhu cầu xác thực phổ biến.

Để tìm hiểu sâu hơn, bạn có thể tham khảo tài liệu chính thức của Supabase Auth.

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!