微信扫描登录(功能完善) | 学习笔记

简介: 快速学习 微信扫描登录(功能完善)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)微信扫描登录(功能完善)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11465


微信扫描登录(功能完善)


内容介绍:

一、功能完善

二、Application.propertier 代码演示


一、功能完善

1、已经登录过的用户不用重复录入,只录入新用户

将”拿着得到的 access_token 和 openid ,再去请求微信提供固定的地址,获取到扫描人信息,访问微信的资源服务器,获取用户信息”步骤移动到”判断数据表里面是否存在相同微信信息,根据 openid 判断”里面

代码如下:

//使用 json 转换工具

Gson Gson gson = new GsonO:

HashMap mapAccessToken =gson.fromJson(accessTokenInfo, HashMap.class) String access token=(

String)mapAccessTokenget( access token");

String openid =(String)mapAccessToken.get("openid);

//把扫描人信息添加数据库里面

//判断数据表里面是查存在相同微信信息,根据 openid 判断

Ucenterlember member =memberService.getOpenIdMember(openid): if(member == null){

//memeber 是空,表没有相同微信数据,进行酒加

//3拿着得到 accsesstoken 和 openid,再去请求微信提供固定的地址,获取到扫描人信息

//访问微信的资源服务器,获取用户信息

StringbaseUserInfoUrl ="https://api.weixin.qq.com/sns/userinfo"+

"?access_token-%s”+"&openid-%s”;

//拼接两个参数

String userInfoUrl = String.format(

baseUserInfoUrl,

access_token, openid):

//发送请求

String userInfo= HttpClientUtils.get(userInfoUrl);

//获取返回 userinfo 字符串扫描人信息

HashMap userInfoMap=gson.fromJson(userInfo,HashMap.class);

String nickname=(String)userInfoMap.get("nickname”);

//昵称

String headimaurl=(String)userInfoMap.get("beadimaurl");

//头像

member =new UcenterMember0: member.setOpenid(openid):

member. setNickname(nickname) member.setAvatar(headimgurl) memberService.save(member);

//最后:返回首页面

return "redirect:http://localhost:3000"}catch(Exception e){

throw new GuliException(20001,"登录失败):}

//1生成微信扫描二维码@GetMapping(-login)

public String getWxCode0{

//固定地址,后面拼接参数

String url="https://open.weÃxin.qg.com/”+

connect/arconnect?appid="+ConstantixUtils. RX OPEN APP ID+"&response type=code".

2、扫描之后,在首页面显示微信信息,比如昵称或者头像

之前登录之后显示,在首页面从 cookie 获取数据显示

代码如下:

Var userStr = cookie.get(‘guil_ucenter’)

//从 cookie 获取数据显示

现在也可以按照以上方式,把扫码之后的信息也放到 cookie 里面,跳转到首页面进行,但是把扫描数据放到 cookie 有问题,因为 cookie 无法实现跨域访问。

最终解决方案:

根据微信信息使用 jwt ,生成 token 字符串,把 token 字符串通过路径传播到首页面

代码如下:

String jwtToken = JwtUtils. get. Jwt Token(member. getId(), member. getNickname ()) ;

//做法:使用 jwt 根据 member 对象生成 token 字符串

代码如下:

return”redirect :http://localhost:3000?token="+jwtToken ;

} catch(Exception e) {

throw new GuliException(20001,"登录失败”) ;

//最后:返回首页面,通过路径传递 token 字符串


二、Application.propertier 代码演示

代码1-10

#服务端口

server.port=8150

#服务名

spring.application.name=service ucenter

# mysq1数据库连接

spring. datasource. driver-class name-com.mysql.cj.jdbc. Driver

spring.datasource.url=jdbc:mysql://localhost:3306/guliserverTimezoneGMT%2B8spring.datasource. username-root spring. datasource. password root

相关文章
|
18天前
|
小程序
微信小程序如何实现进入小程序自动连WiFi功能
微信小程序如何实现进入小程序自动连WiFi功能
|
2月前
|
小程序 JavaScript
微信小程序图片预览功能?
微信小程序图片预览功能?
|
3月前
|
存储 JavaScript 开发工具
uniapp-实现微信授权登录
uniapp-实现微信授权登录
711 0
|
3月前
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
66 0
|
3月前
|
小程序
内网环境中ruoyi若依实现微信小程序授权登录解决办法
内网环境中ruoyi若依实现微信小程序授权登录解决办法
179 0
|
6天前
|
小程序
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
uniapp 实现当前页面分享至微信好友或朋友圈功能(带参数和无参数)
7 0
|
4月前
|
小程序 API 开发者
微信小程序授权登录流程以及应用到的API
微信小程序授权登录流程以及应用到的API
200 0
|
2月前
|
小程序 JavaScript
微信小程序授权登录?
微信小程序授权登录?
|
3月前
|
JSON 前端开发 安全
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-2
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
57 0
|
3月前
|
小程序 Android开发
Appium微信小程序自动化之开启webview调试功能方法封装
Appium微信小程序自动化之开启webview调试功能方法封装
81 0

热门文章

最新文章