Taro 路由拦截 身份认证 授权登录

import { useCallback, useEffect } from "react";
import { useUserStore } from "../../store";
import { getUserOrRedirectAuth } from "./actions";

/**
 * useAuthHOC: 高阶组件,用于处理用户认证
 * 接受一个 Component 作为参数,并返回一个新的组件,该组件在渲染时会检查用户是否已登录
 */
const useAuthHOC = Component => {
  return () => {
    const { userData, setUser } = useUserStore();
    // 初始化用户信息
    const initUser = useCallback(async () => {
      if (userData) return;
      // getUserOrRedirectAuth 的逻辑是已登录就返回用户数据存全局,没登录就跳登录
      const data = await getUserOrRedirectAuth();  
      data && setUser(data);
    }, [userData]);

    // 使用useEffect来在组件加载时初始化用户信息
    useEffect(() => {
      initUser();
    }, []);

    // 如果用户信息未初始化,则不渲染任何内容
    if (!userData || !userData.userNumber {  // !userData.userNumber 是我这儿需要的额外条件,你自己定制
      return null;
    }
    // 如果用户信息已初始化,则渲染传入的Component组件
    return <Component />;
  };
};
export default useAuthHOC;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会给您讲解如何创建taro项目并完成微信小程序授权登录等基础。 1. 首先,您需要安装 Node.js 和 npm,打开命令行工具,输入以下命令进行安装: ``` npm install -g @tarojs/cli ``` 2. 安装完成后,输入下面的命令创建一个新的 Taro 项目: ``` taro init myApp ``` 其中,myApp 是您项目的名称,可以根据实际情况进行修改。 3. 进入项目目录,安装依赖: ``` cd myApp npm install ``` 4. 接下来,您需要配置微信小程序的 AppID 和 AppSecret,打开 `src/config/index.js` 文件,添加以下代码: ``` export default { wx: { appId: 'yourAppId', appSecret: 'yourAppSecret' } } ``` 其中,yourAppId 和 yourAppSecret 是您在微信公众平台申请的 AppID 和 AppSecret。 5. 在 Taro 中,可以使用 `@tarojs/taro` 库提供的 `login` 方法进行微信小程序的授权登录。在 `src/pages/index/index.jsx` 文件中,添加以下代码: ``` import Taro from '@tarojs/taro' import { View, Button } from '@tarojs/components' export default class Index extends Component { handleLogin = async () => { const { code } = await Taro.login() console.log(code) } render () { return ( <View className='index'> <Button onClick={this.handleLogin}>微信登录</Button> </View> ) } } ``` 在点击按钮时,调用 `handleLogin` 方法,使用 `Taro.login()` 方法获取用户的登录凭证 code。 6. 最后,您需要在微信公众平台中配置小程序的登录授权。进入微信公众平台开发者中心,找到“开发”-“开发设置”-“服务器域名”,添加以下域名: ``` https://api.weixin.qq.com ``` 以上就是如何创建 Taro 项目并完成微信小程序授权登录等基础的步骤,希望可以帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡码客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值