UNPKG

react-app-shell

Version:

react打包脚本和example, 这里的版本请忽略

45 lines (37 loc) 1.35 kB
import React, {Component} from 'react'; import {authService} from '../../service'; import {localStore} from '../../utils'; import {appConfig} from '../../config'; /** * 检查统一登录 * 原理是: 通过wechatToken, 解析unionId, 来统一小程序端和H5端的登录状态 * @returns {function(*): InnerComponent} */ export default function checkUnifyLogin() { return (WrappedComponent) => { class InnerComponent extends Component { constructor(props) { super(props); this.checkWechatToken(); } checkWechatToken = async () => { // 本地开发环境 不处理 if (appConfig.env === 'development') return; const wechatToken = localStore.getWechatToken(); // 没有wechatToken 不处理 if (!wechatToken) return; const isLogin = await authService.checkLogin(); if (!isLogin) { localStore.clearToken(); } console.log(`checkWechatToken >> 用户是否登录: ${isLogin ? '是' : '否'}`); }; render() { return ( <WrappedComponent {...this.props}/> ); } } return InnerComponent; }; }