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 { getAccessToken, getPhoneNumber, getUserInfo, getUserID } from "zmp-sdk";
import { authorize, getAccessToken, getPhoneNumber, getUserInfo, getUserID } from "zmp-sdk";
import { useNavigate, useSnackbar } from "zmp-ui";
import { authService } from "@/services/auth.service";
import { useAuthStore } from "@/stores/auth-store";
......@@ -40,14 +40,24 @@ export function useZaloLogin(): UseZaloLoginReturn {
}
try {
const infoResult = await getUserInfo({ autoRequestPermission: true });
if (infoResult?.userInfo) {
if (infoResult.userInfo.id) zaloId = infoResult.userInfo.id;
name = infoResult.userInfo.name;
avatar = infoResult.userInfo.avatar;
const authResult = await authorize({ scopes: ["scope.userInfo"] });
console.log("[ZaloLogin] authorize result:", authResult);
} catch (authErr) {
console.warn("[ZaloLogin] authorize scope.userInfo error or dismissed:", authErr);
}
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;
}
} catch (infoErr) {
console.warn("getUserInfo error or dismissed:", infoErr);
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ã)
......
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