一. 登录流程
小程序发起请求从wx.login()中获取到临时的code,再将该code通过request()请求发送到后端开发者服务器,后端通过接收到的code,可以通过微信开放平台的接口来获取用户的OpenID和session_key,之后根据获取到的数据去查数据库,没有则注册绑定用户手机等业务,有的话生成token,并将用户数据存储在redis以便后续的使用.
二. 所需依赖
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>wx-java-miniapp-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>
三. 流程图
四. 示例代码
//调用wx服务根据零时凭据获取OpenId
WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(code);
if (sessionInfo != null) {
String openid = sessionInfo.getOpenid();
LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserInfo::getWxOpenId, openid);
UserInfo userInfo = userInfoMapper.selectOne(queryWrapper);
if (userInfo == null) {
//数据库没有该用户先存数据库
}
//生成token存入redis
redisTemplate.opsForValue().set(key,value,时间,时间单位);
HashMap<String, String> map = new HashMap<>();
map.put("token", token);
return map;