TF
T-Fluencers Docs
Quay lại SRS

II. Yêu cầu chức năng — Phía Creator (Influencer)#

1. Đăng nhập bằng Google / TikTok#

Mục tiêu#

Cho phép người dùng đăng nhập bằng tài khoản mạng xã hội, không cần tạo tài khoản thủ công.

Phạm vi#

  • Nền tảng: Cổng Influencer (web)
  • Hỗ trợ: Google, TikTok

Luồng nghiệp vụ#

  1. Người dùng chọn phương thức đăng nhập (Google / TikTok).
  2. Ứng dụng chuyển hướng đến trang xác thực OAuth 2.0 của nền tảng tương ứng.
  3. Người dùng đăng nhập và cấp quyền truy cập thông tin: email, tên hiển thị, ảnh đại diện.
  4. Nền tảng trả về Authorization Code → Frontend gửi đến Backend.
  5. Backend đổi mã lấy Access Token → lấy thông tin người dùng.
  6. Kiểm tra: nếu người dùng đã tồn tại → đăng nhập; chưa tồn tại → tạo tài khoản mới.
  7. Backend tạo JWT token, trả phản hồi đăng nhập thành công.

Dữ liệu#

TrườngNguồnLưu trữGhi chú
provider_user_idOAuthDB (hash)Định danh duy nhất
providerHệ thốngDBgoogle / tiktok
emailOAuthDBKhông chia sẻ bên thứ ba
display_nameOAuthDBCho phép chỉnh sửa
avatar_urlOAuthDBCó thể cập nhật
access_tokenOAuthKhông lưuDùng 1 lần rồi hủy

Bảo mật#

  • Không lưu access_token sau khi đăng nhập thành công.
  • Tuân thủ Nghị định 13/2023 (VN) và GDPR (EU).
  • Mã hóa AES-256 cho OAuth token tạm thời.

Kịch bản lỗi#

Tình huốngHành động
Từ chối cấp quyềnHiển thị thông báo, dừng tiến trình
Token hết hạn / không hợp lệThông báo "Phiên đăng nhập thất bại"
Backend không kết nối OAuth serverRetry tối đa 3 lần → thông báo lỗi

Tiêu chí chấp nhận (Acceptance Criteria)#

#Tiêu chíĐiều kiện đạt
AC-1.1Đăng nhập Google thành côngChọn Google → hoàn tất OAuth → redirect về trang chủ với trạng thái đã đăng nhập, hiển thị tên + avatar
AC-1.2Đăng nhập TikTok thành côngChọn TikTok → hoàn tất OAuth → redirect về trang chủ với trạng thái đã đăng nhập
AC-1.3Tạo tài khoản mới tự độngNgười dùng chưa tồn tại → hệ thống tạo tài khoản mới, lưu provider_user_id, email, display_name, avatar_url
AC-1.4Đăng nhập lại tài khoản đã tồn tạiNgười dùng đã có tài khoản → đăng nhập trực tiếp, không tạo trùng
AC-1.5Từ chối cấp quyềnNgười dùng từ chối trên trang OAuth → hiển thị thông báo lỗi, không tạo tài khoản
AC-1.6Access token không lưuSau đăng nhập thành công, access_token OAuth không tồn tại trong DB
AC-1.7JWT token hợp lệResponse trả về JWT token, sử dụng được cho các API tiếp theo