[Woay] Các hình thức xác thực === # Tổng quan về xác thực ### Facebook: - Dùng Facebook để xác thực - Sẽ redirect về callback_url đã setup trước - Sau đó service lấy token từ URL -> Tạo user - -> Generate ra JWT ### SMS: - Hiện tại dùng Facebook AccountKit - Các bước sau đó tương tự Facebook ### Play Code: - Hệ thống sinh ra 1 lượng mã lưu trong database - Các mã này dùng cho 1 vòng quay xác định - Mã sử dụng các ký tự A-Z,0-9; Độ dài 6, 8 hoặc 10 ký tự - Vòng quay bổ sung thêm: - wheel.prodivder: String, regx: domain - Client sẽ gọi 1 API kiểm tra code, nếu hợp lệ: - Tạo 1 user mới với các thông tin: - name=CODE - provider_id='<code.id>' - provider=wheel.provider - prodvider_raw= ``` { type: 'playcode', provider: wheel.provider, wheel_id: wheel.id, code: CODE } ``` - trả về JWT ### No Auth - Sẽ có 1 user đặc biệt là Anonymous - Vòng quay sử dụng No Auth sẽ trả về JWT của user này trong WHEEL_SETTINGS # Hiện thực Playcode ### Table PlayCode: ```json=0 { "id": integer, "value": string, "wheel_id": integer, "name": string, "email": string, "phone": string, "ext_id": string, "meta": string // json } ``` ### API #### Tạo N code (for partner) POST /api.play-code ```json= { "wheel_id": 0, "is_random": true, "amount_of_code": 0, "length": 0, "code_rule": { "use_upper": true, "use_lower": true, "use_numeric": true }, "prefix": "string", "code": "string" } ``` #### Lấy list code (for partner) GET /api.wheel/:id/play-code ``` { } ``` #### Submit code lấy JWT (for customer) - POST: API /api.wheel/:uid/playcode ```json { "code": "THISISCODE" } ``` ### Các API khi chơi game: - API claim: Tương tự flow cũ - API reward: Tương tự flow cũ