# uni授权
**Repository Path**: html-static-resources/x-authorize
## Basic Information
- **Project Name**: uni授权
- **Description**: 将h5登录,公众号授权登录、小程序授权、APP登录统一封装
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 13
- **Created**: 2023-04-14
- **Last Updated**: 2023-04-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 使用
* 执行npm instal 安装对应npm包,否则项目无法运行(文件查找失败)
#### 1.安装
```
npm install
```
#### 2、引入 (main.js已全局引入x-authorize直接下一步)
```
import xWxmlToCanvas from '@/components/x-authorize/x-authorize';
components: {
xAuthorize
}
```
#### 3、使用 ()
```
```
### 使用需注意
* [体验地址](https://uni.xyzgy.xyz)
* 官方公众号授权逻辑最近有更新,由页面跳转改为弹窗,因此开发者工具与真机是两种情况,若授权之后回调逻辑不理想,自己视情况调整 (login.js 75-78,)
### luch-request封装
* utils/request.js
* pending存储所有请求信息,请求成功之后会删除(剩余信息就是请求未完成或者失败的)
* pending字段是Map对象,以页面路径+请求头+请求地址+请求参数作为key,基本可以保证唯一性
* 取消task操作需求的可将pending字段全局存储,根据自己业务需求处理
### 项目简述
* 2.0.1版本是重写后的版本,代码可读性更高,也更加便于调试,本人也承认之前版本的代码可读性太差,近段时间抽时间重新调整;
* 授权相关返回信息,在本项目中返回固定值(在api/auth.js),
* 公众号授权本地测试建议申请测试号
* 本组件仅小程序、h5、微信公众号、头条小程序中有测试
*
* 授权,鉴权涉及到全局,单一就一个组件,无法发挥多大作用,因此将整体逻辑代码完全展示
* 项目中的整体授权,涉及环节较多,项目目录结构按照本人平常的代码习惯,觉得合适的可以在此基础上进行开发
* plugins目录中存放的是本人封装的request请求,在utils中的requset中初始化并使用该文件,你也可以单独引用该文件封装自己的request
* request方法对api请求前做一次鉴权判断,但这需要在请求传入参数时传入相关字段辅助(本人声明login为true时代表该api需要鉴权,未授权时,调用autoAuth())
### 核心文件说明
* api/auth.js 公众号配置信息的获取,登录及用户信息获取 getWechatConfig(微信公众号配置) / getUserInfo(用户信息) / login(多端登录授权)
* components/x-authorize 小程序中会弹窗形式,h5跳转登录页,公众号调起公众号授权
* store/index.js 保存登录相关信息
* utils/login.js 授权及鉴权相关逻辑 checkTokenStatus(登录信息是否过期)
* utils/wechat.js 公众号授权,包含用户信息授权及分享等功能的方法的封装 (可单独使用)
* utils/request.js luch-request二次封装
* config.js 全局变量的配置信息
### 字段说明
| 字段 | 类型 |默认值 |描述 |
| ---- | ---- |---- |---- |
| isAuto | Boolean |true| 自动授权 true 用户已授权直接请求,未授权,弹窗引导用户
### 作者有话说
* 插件是佛系更新,因此不会随时关注,有留言,看到就会回复
* 不好用,欢迎差评,但注意一下言辞,不要理直气壮的
* 使用前,看文档,已多次强调,已无力吐槽
* 2.0.1版本应该会作为一个稳定版本,不会再做大逻辑调整,后期有时间可能会增加其它功能
### 其它插件(主要维护的)
* 不在列表中的的插件,已经放弃维护,属于uniapp刚推出时随手写的,没有太大维护意义
* [uni版本的 html-to-canvas](https://ext.dcloud.net.cn/plugin?id=3998) 基于微信官方的wxml-to-canvas封装
* [h5、公众号、小程序授权登录](https://ext.dcloud.net.cn/plugin?id=2647) 将h5登录,公众号授权登录、小程序授权登录、APP登录统一封装