【ShareBook】1-后台框架与小程序用户登录接口实战

栏目: 后端 · 前端 · 发布时间: 4年前

内容简介:本博客猫叔的博客,转载请申明出处 阅读本文约 “5分钟” 适读人群:Java后端、Java初级、小程序前端先看一下本节的学习目录,我们项目的小程序会在首次登录的时候自动获取用户的

本博客猫叔的博客,转载请申明出处 阅读本文约 “5分钟” 适读人群:Java后端、 Java 初级、小程序前端

前后端项目的地址

小程序前端

【ShareBook】1-后台框架与小程序用户登录接口实战

先看一下本节的学习目录,我们项目的小程序会在首次登录的时候自动获取用户的 OpenId ,并作为系统的注册信息,这里只是获取其OpenId或者SessionId,还 没有获取用户信息 (比如头像、Id、性别等)。

而在获取前,大家可能还要了解一下小程序的 用户注册流程 ,这里我就不具体说了。

我们会在app.js(这个是所有小程序 首次都会执行的js ,我们会对小程序的 缓存区Storage 进行校验,并确定是否存在有效token),做校验,如果没有就进行 首次注册

注册流程是从小程序(简称vx,以下vx替代)获取用户的code,给到服务器,服务器会用code还有自己的appId等信息一起去微信服务器请求用户数据,注意每一个vx所对应的用户 openid都是不一样 的。

config.js是存放整个vx的 统一基层API地址

就如上图写的,前端在第一节的内容较为简单,大家可以在GitHub看到源码。

针对适读人群的合理学习时间是: 45分钟,并了解vx官网部分简易API

Java服务端

【ShareBook】1-后台框架与小程序用户登录接口实战

本节的服务端是重点,除了搭建整个SpringBoot基本开发框架以外(好像不用很久)还要准备一些基本的 公关类和 工具 ,这个大家学习起来可能有点费劲,不过干货很多。

首先是技术栈,SpringBoot+MySQL+MyBatis,这个我就不具体说怎么搭建了,详情看源码,或者我的 官网 也有搭建教程。

在pom文件中,我引入了Swagger,这会方便我们与前端对接API的信息,你仅需要在启动类加上一个 @EnableSwagger2的注解 即可。

访问: http://localhost:8080/sharebook/swagger-ui.html (注意我的application-dev.yml中给项目起了名字叫sharebook,如果你是 其他名字 ,请修改)

【ShareBook】1-后台框架与小程序用户登录接口实战

需要介绍的是,大家可以看看resources文件夹我采用application.yml、application-dev.yml,这样可以方便我们快速切换 开发、生产、测试等多种环境的项目配置 ,希望大家可以养成习惯。

在项目的实体类上,我采用Lombok快速生成get/set方法,你仅需要加一个@Data的注解,这里你需要注意还要加 无参和全参的构造函数 ,例如我一开始没有全参的构造,在读取生成User实体类的时候,MyBatis会报 java.lang.NoSuchMethodException

同时实体类需要序列号,我这里就采用默认的Serializable,对实体类序列化是因为它可能需要进行 网络通信或者数据持久化 。对于加了Serializable的实体类,最好有一个对应的UID。

【ShareBook】1-后台框架与小程序用户登录接口实战

因为我是用IDEA(推荐使用),所有如果要 生成UID ,可以在配置勾选以上的 选项 ,然后点击实体类按“Alt+Enter”,然后选择生成UID即可。

common & util

对于AppMessage,大家可能会吐槽,因为其实可以优化,不过我从ssm迁移过来就偷懒了,大家可以fork后自己改为SpringBoot的yml配置形式,它其实就是一些 静态配置

HttpService写的不好,大家可以修改优化,是一个普通的 Http请求工具类

主要是ResponseCode和ServerCache,对API接口返回层做了 统一处理 ,vx前端 程序员 可以更好的 调试工作 ,推荐大家模仿优化。

TokenCache使用了Google的guava做了本地缓存, 缓存vx登录的token ,一定要设定有效时间。

其实util包和common包一开始拆分的不好,所以大家可以优化。

MD5Util就是一个MD5的加解密处理。

业务处理

就如上面vx环节说的,我们API获取到code后会进行校验处理。

【ShareBook】1-后台框架与小程序用户登录接口实战

我在接口实现使用了很古老的方式,代码是很久以前的了,见谅,介绍流程为主。大家可以去修改优化。

我对从微信服务器获取到的结果进行校验和数据获取,得到的 openid先到数据库校验,用户是否存在,存在就生成Token,不存在就注册后生成Token 。流程很简单。

补充以下,vx的API路径我推荐:http://localhost:8080/sharebook/api/v1/

这里采用v1命名。是因为后续升级后v2,这样有时可以 保证老版本API可以继续使用或者停用

针对适读人群的合理学习时间是: 115分钟,推荐自己模仿敲一遍

实战调试

vx首次登录调用成功。

【ShareBook】1-后台框架与小程序用户登录接口实战

vx缓存区Storage存储token数据

【ShareBook】1-后台框架与小程序用户登录接口实战

后端服务器日志打印正常。

【ShareBook】1-后台框架与小程序用户登录接口实战

SQL数据录入正常,这里sessionId为null是正常的,项目业务没有要求存储sessionId,注意对于在统一公众号下的不同小程序的openid是不同的,但是sessionId是一致的(不知道近期vx官方是否更改规则)。

【ShareBook】1-后台框架与小程序用户登录接口实战

目录链接

公众号:Java猫说

学习交流群:728698035

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。

【ShareBook】1-后台框架与小程序用户登录接口实战


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)

架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)

Martin L. Abbott、Michael T. Fisher / 陈斌 / 机械工业出版社 / 2016-4-15 / 99.00

任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。本书汇聚了作者从eBay、VISA、Salesforce.com到Apple超过30年的丰富经验, 全面阐释了经过验证的信息技术扩展方法,对所需要掌握的产品和服务的平滑扩展做了详尽的论述,并在第1版的基础上更新了扩展的策略、技术和案例。 针对技术和非技术的决策者,马丁•阿伯特和迈克尔•费舍尔详尽地介绍了影响扩展性的各个方面,包......一起来看看 《架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具