Commit 53fa49c9 authored by ThinhNC's avatar ThinhNC

Merge branch 'fix/login-zalo' into 'develop'

feat: implement useZaloLogin hook to handle Zalo authentication and user profile integration

See merge request !39
parents 074ca247 d77a3367
import { useState } from "react"; import { useState } from "react";
import { getAccessToken, getPhoneNumber, getUserInfo, getUserID } from "zmp-sdk"; import { authorize, getAccessToken, getPhoneNumber, getUserInfo, getUserID } from "zmp-sdk";
import { useNavigate, useSnackbar } from "zmp-ui"; import { useNavigate, useSnackbar } from "zmp-ui";
import { authService } from "@/services/auth.service"; import { authService } from "@/services/auth.service";
import { useAuthStore } from "@/stores/auth-store"; import { useAuthStore } from "@/stores/auth-store";
...@@ -40,14 +40,24 @@ export function useZaloLogin(): UseZaloLoginReturn { ...@@ -40,14 +40,24 @@ export function useZaloLogin(): UseZaloLoginReturn {
} }
try { try {
const infoResult = await getUserInfo({ autoRequestPermission: true }); const authResult = await authorize({ scopes: ["scope.userInfo"] });
if (infoResult?.userInfo) { console.log("[ZaloLogin] authorize result:", authResult);
if (infoResult.userInfo.id) zaloId = infoResult.userInfo.id; } catch (authErr) {
name = infoResult.userInfo.name; console.warn("[ZaloLogin] authorize scope.userInfo error or dismissed:", authErr);
avatar = infoResult.userInfo.avatar;
} }
} catch (infoErr) {
console.warn("getUserInfo error or dismissed:", infoErr); try {
const infoResult: any = await getUserInfo({ autoRequestPermission: true });
console.log("[ZaloLogin] getUserInfo raw result:", infoResult);
const userObj = infoResult?.userInfo || infoResult;
if (userObj) {
if (userObj.id) zaloId = userObj.id;
if (userObj.name) name = userObj.name;
if (userObj.avatar) avatar = userObj.avatar;
}
console.log("[ZaloLogin] resolved user profile:", { zaloId, name, avatar });
} catch (infoErr: any) {
console.warn("[ZaloLogin] getUserInfo error:", infoErr);
} }
// 3. Lấy số điện thoại từ Zalo SDK (lấy mã token bảo mật 2 phút để backend giải mã) // 3. Lấy số điện thoại từ Zalo SDK (lấy mã token bảo mật 2 phút để backend giải mã)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment