企业微信客户端打开则自动跳转 OAuth 连接授权成功后 Callback Code 回来去后端换区用户 token 自动登录;非企业微信客户端跳转到 Login 页面。。
目前我整个逻辑写在了 router.beforeEach
里,写这里合适吗,大家都写在哪里(比如是否把跳转和自动登录写在 main.ts 中路由前?)?
流程是否有问题?我的基本逻辑:判断有无 token 是否登录 > 判断是否企业微信客户端(是跳转 OAuth 连接并回调)> 判断是否有携带 Code ,自动登录。
// 4.判断访问页面是否在路由白名单地址(静态路由)中,如果存在直接放行
if (ROUTER_WHITE_LIST.includes(to.path)) return next();
// 5.判断是否有 Token ,没有重定向到 login 页面
if (!userStore.token) {
if (isWeWork()) {
userStore.loginWeWork().then(isSuccess => {
if (isSuccess) next();
});
} else {
next({ path: LOGIN_URL, replace: true });
}
} else {
// 使用缓存视图
useCachedViewStoreHook().addCachedView(to);
next();
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.