|
|
@@ -81,6 +81,33 @@ export default class PageAutoLogin {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ // 自动登录写入本地前后调用,主动拉取自己的 profile(user/access_hash)
|
|
|
+ private async handleSelfUser(): Promise<void> {
|
|
|
+ try {
|
|
|
+ // 延迟一点点确保 managers 已初始化(可视场景需求调整,不可同步直接引用 rootScope)
|
|
|
+ // @ts-ignore
|
|
|
+ const rootScope = (window as any).rootScope || window?.rootScope; // 若全局可访问
|
|
|
+ if(!rootScope || !rootScope.managers) return;
|
|
|
+ const apiManager = rootScope.managers.apiManager;
|
|
|
+ const appUsersManager = rootScope.managers.appUsersManager;
|
|
|
+ if(apiManager && appUsersManager) {
|
|
|
+ const selfUserFull = await apiManager.invokeApi('users.getFullUser', {id: {_: 'inputUserSelf'}});
|
|
|
+ if(
|
|
|
+ selfUserFull &&
|
|
|
+ Array.isArray(selfUserFull.users) &&
|
|
|
+ selfUserFull.users.length > 0
|
|
|
+ ) {
|
|
|
+ // 保存所有相关 user 对象
|
|
|
+ appUsersManager.saveApiUsers(selfUserFull.users);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch(err) {
|
|
|
+ // 失败忽略,不影响主流程
|
|
|
+ // @ts-ignore
|
|
|
+ (window.console || console).warn('自动登录后主动拉取自己profile失败', err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private async handleAutoLogin(): Promise<void> {
|
|
|
if(this.isProcessing) return;
|
|
|
|
|
|
@@ -162,6 +189,8 @@ export default class PageAutoLogin {
|
|
|
// 标记这是通过URL参数自动登录的,跳过转圈圈页面
|
|
|
localStorage.setItem('autoLoginFromUrl', 'true');
|
|
|
|
|
|
+ // 主动同步自己profile
|
|
|
+ await this.handleSelfUser();
|
|
|
// 自动刷新页面以应用新的localStorage数据
|
|
|
setTimeout(() => {
|
|
|
window.location.reload();
|