关于pc端微信登录前后端分离的java后台开发
关于微信登录呢首先要去腾讯开发者平台选择微信开发者平台点进去注册登录网址为https://open.tencent.com/
选择到网站应用进行创建申请博主是为公司开发所以一些东西都有 那要是个人开发的话微信好像有测试数据可以用你可以去了解一下就只是需要两个值一个是APPID一个是secret来进行开发创建网站应用时指定的回调地址不能写http://或者https://开头就好直接写你的www.xxx.com这样的格式
首先需要写一个接口给前端来获取跳转到微信二维码登录界面的url需要传递的参数就是你在网站创建完成后得到的APPID以及一些其他参数如下需要注意的是redirect_uri这个是回调地址其他的应该解释的很清楚了吧
参数 是否必须 说明
appid 是 应用唯一标识
redirect_uri 是 请使用urlEncode对链接进行处理
response_type 是 填code
scope 是 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即
state 否 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
那么请求地址就是为https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
相应的参数填入然后返回给前端由前端进行访问,回调地址(回调是回调到前端页面)要与你注册网站应用时的地址一样不过之后可以在网站应用中修改 构建代码如下(注意这里的回调地址要做一点处理相信你应该能看懂)
//pcwechatId为APPIDString url= "https://open.weixin.qq.com/connect/qrconnect?appid="+pcwechatId+"&redirect_uri=https%3a%2f%2fpc.my51.com%2fWXLOGIN&response_type=code&scope=snsapi_login&state="+state+"#wechat_redirect";
这时用户进入了微信提供的一个页面用户扫码授权登录用户如果不授权则不会跳转到回调地址上,回调完成之后会给前端传送code以及state参数由前端传送到后端接口,那么我们后端收到了code和state的值之后就要去访问微信提供的请求地址来获取access_token只有这个值才能获取用户信息那么参数为
参数 是否必须 说明appid 是 应用唯一标识,在微信开放平台提交应用审核通过后获得secret 是 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得code 是 填写获取的code参数grant_type 是 填authorization_code
那么请求微信的网址为https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
相应的填入参数就可以了下面是本人打的代码
String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+pcwechatId+"&secret="+pcwechatSecret+"&code="+codes+"&grant_type=authorization_code";String retText = OKHttpUtils.client(url);Gson gson = new Gson();Map result = gson.fromJson(retText, new TypeToken<Map>() {}.getType());if (result.get("errcode") != null) {code=1;codeMessage=result.get("errcode").toString();map.put("memberInfo",null);map.put("codeMessage",codeMessage);map.put("code", code);return map;}String accessToken = (String) result.get("access_token");String openid = (String) result.get("openid");String unionid = (String) result.get("unionid");
请求地址后得到数据封装成map然后根据名字获取对应的值本人用的springboot对与Appid和Secret都做了封装所以是看不到的后面拿到值后再次请求微信接口参数如下
参数 是否必须 说明
access_token 是 调用凭证
openid 是 普通用户的标识,对当前开发者帐号唯一
lang 否 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN
那么请求地址为https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
根据获取的值填入就行了傻瓜式操作应该都会吧接下来是本人的代码
url="https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openid;String retTexts = OKHttpUtils.client(url);Map results = gson.fromJson(retTexts, new TypeToken<Map>() {}.getType());if (results.get("errcode")==null){//普通用户的标识,对当前开发者帐号唯一String Openid=results.get("openid").toString();//用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空String headImgUrl= results.get("headimgurl").toString();//普通用户昵称String nickName=results.get("nickname").toString();//普通用户性别,1为男性,2为女性String sex= results.get("sex").toString();//普通用户个人资料填写的城市String city=results.get("city").toString();//普通用户个人资料填写的省份String province=results.get("province").toString();//用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的String registrationID=results.get("unionid").toString();
一样的操作封装成map然后根据名字获取值然后该保存保存 该返回前端返回前端 到此完成
这次分享就到这里 一个不严谨的博主 dw_weiwei
关于pc端微信登录前后端分离的java后台开发相关推荐
- 微信第三方登录前后端分离实现思路
微信第三方登录前后端分离实现思路 前端实现 这里说一下前后端的思路,页面加载时声明一个变量state='时间戳+6位随机数', 前端路径生成二维码, 其中有个state参数需要我们传递,这个参数你传什 ...
- IP-Guard能否限制PC端微信登录?
能否限制PC端微信登录? 不能限制微信登录,但可以通过应用程序控制策略,禁止微信程序启动. 在控制台-[策略]-[应用程序],添加以下策略: 动作:禁止 应用程序:wechat.exe 可以实现禁止微 ...
- java前后端分离的实现方式_采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
MyUploader-Backend 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 简介 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能. 前端采用 vue.js + ...
- 计算机毕业设计-ssm+vue汽车销售管理系统-汽车商城(前后端分离)java代码
计算机毕业设计-ssm+vue汽车销售管理系统-汽车商城(前后端分离)java代码 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 设计模式:MVC 架构:B ...
- 计算机毕业设计-基于ssm+vue的化妆品商城管理系统(前后端分离)java代码
计算机毕业设计-基于ssm+vue的化妆品商城管理系统(前后端分离)java代码 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 作者:IT跃迁谷 1.开发环境 开发语言:Java 设计模式: ...
- H5 微信公众号 授权登录 前后端分离篇(资料准备+前端01)
实现微信公众号授权登录,很简单,但是注意的地方要细心,小伙伴们跟着我的思路一起实现吧! 文章目录 一.帐号申请 1. 正式账号 2. 测试帐号 二.微信文档 2.1. 文档主页 2.2. 授权流程 2 ...
- 微信授权登录-前后端分离
简介 在前后端分离情况下实现微信服务号和订阅号授权登录,项目使用springboot+Vue前后端分离的开发模式. 备注:目前只提供后端代码实现以及业务逻辑 流程图 服务号 开发逻辑 进入活动页面根据 ...
- php前后端分离登录,前后端分离下如何登录
1 Web登录涉及到知识点 1.1 HTTP无状态性HTTP是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于 ...
- 前后端分离的Java微信小程序B2C商城 H5+APP源码
Java B2C商城微信小程序 H5+APP源码 前后端分离 H5+微信小程序+ Android+IOS, Java SpringBoot+vue 开发语言:JAVA 数据库:MySQL 开发工具:E ...
- SSO单点登录前后端分离完整版·(开源)
前言:3月建的仓,完成确是在7月中旬,实际完成时间加起来不到10天,中间停滞了很久,主要工作太忙,白天没时间搞,况且工作摸鱼也不是我的作风,晚上下班回家要帮家人一起带娃,唯一的时间也会用来看看书和视频 ...
最新文章
- oracle dataguard详解,Oracle DataGuard数据备份方案详解
- 吉他入门第一讲~~~~~右手弹奏基础
- wex5 教程 前端UI编译原理与记事本编辑
- 陆金所 CAT 优化实践
- Flutter基础—绘画效果之不透明度
- STC学习:定时器和中断
- 2022跨年烟花代码(五)HTML5全屏烟花特效
- Hadoop大数据技术课程设计说明
- Android前景与背景
- 多线程程序的填坑笔记和多线程编程应该遵循的规则
- Android开发提供两个图片和视频的测试url
- 2021-11-12:前 K 个高频元素。给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。提示:1 <= nums.length <=
- Struts原理与实践(7)[转]
- 计算机or笔记本,笔记本or台式机 这几款戴尔主机性能上没得挑
- PDMS二次开发(十四)——自动插入焊口和计算焊接当量(达因数)
- Comet OJ - 2019国庆欢乐赛 D1 入学考试 (简单版)
- 大数据学前准备--zookeeper详解与集群搭建(保姆级教程)
- RPA之家转载视频教程2
- FR8016HA串口唤醒睡眠
- 注册表 添加右键命令