feat(chat): prompt facebook users to open external browser
This commit is contained in:
@@ -243,8 +243,9 @@ export const guestLoginActor = fromPromise<LoginStatus, void>(async () => {
|
||||
// 1. deviceIdentifier.getDeviceId() —— 无则通过 fingerprintjs 生成 + 落盘
|
||||
// (给后续 OAuth/email 登录准备 deviceId,不在 splash 首次访问就 auto-create 游客)
|
||||
// 2. AuthStorage.getLoginToken() —— 有 → "email"
|
||||
// 3. AuthStorage.getGuestToken() —— 有 → "guest"
|
||||
// 4. 都没有 → "notLoggedIn"(让用户显式选 OAuth / Email / Guest 入口)
|
||||
// 3. AuthStorage.getFacebookId() —— 有 → facebookIdLogin → "facebook"
|
||||
// 4. AuthStorage.getGuestToken() —— 有 → "guest"
|
||||
// 5. 都没有 → "notLoggedIn"(让用户显式选 OAuth / Email / Guest 入口)
|
||||
|
||||
export const checkAuthStatusActor = fromPromise<LoginStatus, void>(async () => {
|
||||
// 1. 拿 deviceId(不用于 auto-guest-login,仅供后续登录用)
|
||||
@@ -257,12 +258,32 @@ export const checkAuthStatusActor = fromPromise<LoginStatus, void>(async () => {
|
||||
return "email" as LoginStatus;
|
||||
}
|
||||
|
||||
// 3. 查 guestToken
|
||||
// 3. 外部浏览器深链同步:仅 fbid 落地时,用它换业务 token。
|
||||
const facebookIdR = await storage.getFacebookId();
|
||||
if (facebookIdR.success && facebookIdR.data) {
|
||||
const avatarUrlR = await UserStorage.getInstance().getAvatarUrl();
|
||||
const result = await authRepo.facebookIdLogin({
|
||||
fbId: facebookIdR.data,
|
||||
avatarUrl: avatarUrlR.success ? avatarUrlR.data ?? undefined : undefined,
|
||||
});
|
||||
|
||||
if (Result.isErr(result)) {
|
||||
log.warn(
|
||||
{ err: result.error.message },
|
||||
"[auth-machine] checkAuthStatusActor: facebookIdLogin failed",
|
||||
);
|
||||
return "notLoggedIn" as LoginStatus;
|
||||
}
|
||||
|
||||
return "facebook" as LoginStatus;
|
||||
}
|
||||
|
||||
// 4. 查 guestToken
|
||||
const guestTokenR = await storage.getGuestToken();
|
||||
if (guestTokenR.success && guestTokenR.data) {
|
||||
return "guest" as LoginStatus;
|
||||
}
|
||||
|
||||
// 4. 都没有 → "notLoggedIn"(保持 splash 页面 + 登录入口)
|
||||
// 5. 都没有 → "notLoggedIn"(保持 splash 页面 + 登录入口)
|
||||
return "notLoggedIn" as LoginStatus;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user