资讯专栏INFORMATION COLUMN

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

zorro / 2116人阅读

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

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

ShareBookServer

ShareBookClient

小程序前端

先看一下本节的学习目录,我们项目的小程序会在首次登录的时候自动获取用户的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服务端

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

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

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

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

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

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

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

因为我是用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后会进行校验处理。

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

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

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

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

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

实战调试

vx首次登录调用成功。

vx缓存区Storage存储token数据

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

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

目录链接

没有实战经验?从零敲一个企业级共享项目前后端!

公众号:Java猫说

学习交流群:728698035

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77705.html

相关文章

  • 「前端早读君009」快速小程序开发之微信小程序内嵌 H5

    摘要:前言微信小程序中可以直接运行页面,这一新组件的产生,可能直接导致小程序数量迎来一波高峰。微信小程序配置系列问题配置域名业务域名中配置的就是小程序以及和中引用的域名。 今日励志语 要接受自己行动所带来的责任而非自己成就所带来的荣耀。 前言 微信小程序中可以直接运行 web 页面,这一新组件 web-view 的产生,可能直接导致小程序数量迎来一波高峰。本篇博文将从业务选型,微信小程序后台...

    wh469012917 评论0 收藏0
  • 实战教程】使用知晓云完成小程序客服消息的自动回复

    摘要:此次教程将再次带领大家体验消息推送,实现另一个微信消息推送的触发器,关于自动回复小程序客服消息的。我们需要通过控制台引擎触发器添加创建一个触发器,这个触发器将帮助我们在设置好的条件被触发的情况下运行云函数来实现用户消息的自动回复。 在上次推送完「卡券核销消息推送」的教程后,我们决定再多出点教程。 此次教程将再次带领大家体验「消息推送」,实现另一个「微信消息推送」的触发器,关于自动回复小...

    ytwman 评论0 收藏0
  • 程序员React精品项目全集:商城管理后台(视频+源码+笔记)

    摘要:今天给大家带来了好程序员实战项目商城管理后台。配合项目学习会让你更快掌握它的使用方法下面就来看看好程序员这套实战项目课程介绍好程序员项目本项目是一个使用开发的商城系统的管理后台,里面登录判断,接口调用,数据展示和编辑,文件上传等后台功能。 众所周知,项目经验对于一个程序员变得越来越重要。在面...

    李世赞 评论0 收藏0
  • 手把手0基础项目实战(三)——教你开发一套电商平台的安全框架

    摘要:在领域,有两大主流的安全框架,和。角色角色是一组权限的集合。安全框架的实现注解的实现本套安全框架一共定义了四个注解。该注解用来告诉安全框架,本项目中所有类所在的包,从而能够帮助安全框架快速找到类,避免了所有类的扫描。 写在最前 本文是《手把手项目实战系列》的第三篇文章,预告一下,整个系列会介绍如下内容: 《手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(Sprin...

    RaoMeng 评论0 收藏0

发表评论

0条评论

zorro

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<