# uni-app微信小程序登录 ## 第一章 前端页面 ### 1.1 简介 前端使用uni-app 后端springboot2.X+mybatis plus 持久化数据库mysql8.0.16 ![微信登录流程](F:\demo\app\wx-login-uni\微信登录流程.jpg) ### 1.2 微信小程序登录步骤 第一步:小程序通过uni.login()获取code。 第二步:小程序通过uni.request()发送code到开发者服务器。 第三步:开发者服务器接收小程序发送的code,并携带appid、appsecret(这两个需要到微信小程序后台查看)、code发送到微信服务器。 第四步:微信服务器接收开发者服务器发送的appid、appsecret、code进行校验。校验通过后向开发者服务器发送session_key、openid。 第五步:开发者服务器自己生成一个key(自定义登录状态)与openid、session_key进行关联,并存到数据库中(mysql、redis等)。 第六步:开发者服务器返回生成key(自定义登录状态)到小程序。 第七步:小程序存储key(自定义登录状态)到本地。 ### 1.3首页index ``` ``` ### 1.4 登录页面login ``` ``` ## 第二章 uni-app业务逻辑开发 ### 2.1 vuex在uni-app中的使用 ### 2.2 登录功能实现 ## 第三章 数据库设计与运行 ### 3.1 vmware使用docker安装mysql ### 3.2 user数据表建立 配置application.yml ``` server: port: 8080 spring: datasource: url: jdbc:mysql://192.168.253.133:3307/test?useUnicode=true&useSSL=false&characterEndcoding=utf8&serverTimezon=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver ``` 创建表格 ``` CREATE TABLE `user` ( `open_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'open_id', `skey` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'skey', `create_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `last_visit_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后登录时间', `session_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'session_key', `avatar_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', `nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网名', PRIMARY KEY (`open_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '微信用户信息' ; ``` ## 第四章 springboot开发后端接口