feat: introduce reporting system and two-factor authentication (2FA)
- Added `ReportDialog` component for user-generated content reporting. - Integrated `ReportService` with create, update, and fetch report functionalities. - Enhanced `AuthService` with 2FA setup, enable, disable, and verification methods. - Updated types to include 2FA responses and reporting-related data. - Enhanced `ContentCard` UI to support reporting functionality. - Improved admin services to manage user reports and statuses.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import api from "@/lib/api";
|
||||
import type { LoginResponse, RegisterPayload } from "@/types/auth";
|
||||
import type { LoginResponse, RegisterPayload, TwoFactorSetupResponse } from "@/types/auth";
|
||||
|
||||
export const AuthService = {
|
||||
async login(email: string, password: string): Promise<LoginResponse> {
|
||||
@@ -10,6 +10,14 @@ export const AuthService = {
|
||||
return data;
|
||||
},
|
||||
|
||||
async verify2fa(userId: string, token: string): Promise<LoginResponse> {
|
||||
const { data } = await api.post<LoginResponse>("/auth/verify-2fa", {
|
||||
userId,
|
||||
token,
|
||||
});
|
||||
return data;
|
||||
},
|
||||
|
||||
async register(payload: RegisterPayload): Promise<void> {
|
||||
await api.post("/auth/register", payload);
|
||||
},
|
||||
@@ -21,4 +29,17 @@ export const AuthService = {
|
||||
async refresh(): Promise<void> {
|
||||
await api.post("/auth/refresh");
|
||||
},
|
||||
|
||||
async setup2fa(): Promise<TwoFactorSetupResponse> {
|
||||
const { data } = await api.post<TwoFactorSetupResponse>("/users/me/2fa/setup");
|
||||
return data;
|
||||
},
|
||||
|
||||
async enable2fa(token: string): Promise<void> {
|
||||
await api.post("/users/me/2fa/enable", { token });
|
||||
},
|
||||
|
||||
async disable2fa(token: string): Promise<void> {
|
||||
await api.post("/users/me/2fa/disable", { token });
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user