微信开发之网站微信授权登录-JAVA版

引子

这是微信开发的第二篇博客,本来想第一篇从这篇开始的 这里衔接第一篇微信公众号H5支付,但是很多开发者做微信开发仅仅是使用支付功能而已,这里切入主题想必很多开发者从事微信公众号开发,都有需求制定自己的第三方网站,为了增强用户体验感,降低用户的流失率,会在用户通过公众号点击第三方网站的时候,就进行授权登录,开发者就能获取到用户的一些个人信息,例如头像,openid,地址等,从而完善用户的个人信息。

一、前言

网站微信授权登录的准备工作:官方接口文档 ,微信服务号(怎么注册我就不提了),准备工作做好了过后,梳理流程,切勿愣头青,先把流程梳理好,才好带入业务

官方文案:  网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

二、思路

这里是官方的授权流程图,根据流程图显示,首先是发起授权登录的请求,然后重定向微信,微信又会重新跳转到用户设置好的url上面,并且写到了code参数,通过code参数加上AppIdheAppSecret,换取到token,最后根据token拿到用户的信息,操作就结束了。

三、场景代码

下面贴上我自己的代码:

String Hdurl = "这里填写你的微信重定向路径必须为域名";

String URL= "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeiXinConfig.appid + "&redirect_uri=" + URLEncoder.encode(Hdurl) +

"&response_type=code&scope=" + WeiXinConfig.scope + "&state=STATE#wechat_redirect";return "redirect:" + URL;

如果时候请求成功的话,微信会弹出一个授权框,点击同意,就会跳转到自己设置的重定向路径。记住code是携带在get请求里面的,拿到code后,通过code去get请求,获取token,这里注意一点要获取服务器的token必须在要公共平台里面的基本设置,设置IP白名单

贴上我的代码:

//获取token

logger.info("获取code ——————" +code);

String tokenUrl= " https://api.weixin.qq.com/sns/oauth2/access_token";

String TokenJson= HttpRequest.sendGet(tokenUrl, "appid=" + WeiXinConfig.appid + "&secret=" + WeiXinConfig.AppSecret + "&code=" + code + "&grant_type=authorization_code");

logger.info("获取token ——————" + TokenJson.toString());

这里如果没有问题的话,响应回来的json数据,里面就会有access_token这个参数里面携带了token,注意一点,token有效时间为两个小时,toekn一天是用使用上限的默认为2000,微信里面的很多操作都需要使用toekn,所以可以根据token设置一套过期机制,过后期才去申请新,顺带还有用户的openid。

下面进行微信授权的最后一步,通过token和openid获取用户的基本信息

贴上代码:

String userUrl = "https://api.weixin.qq.com/sns/userinfo";

String userInfo= HttpRequest.sendGet(userUrl, "access_token=" + token.getAccess_token() + "&openid=" + token.getOpenid() + "&lang=zh_CN");

logger.info("获取userInfo ——————" + userInfo.toString());

不出问题的话,就会通过响应的json信息就能拿到用户的基本信息了,微信授权登录的所有操作就完成了,然后开发者可以根据自己的业务进行下一步流程。

四、总结

其实微信网页授权登录,算是微信开发里面,比较简单的功能了,参数细心注意一点的话基本可以一次过了,最后如果这篇文章有什么不好的地方,希望大家指出来,如果能帮助到那些没有思路没有接触过微信开发的小伙伴解决问题,这就是我写博客最大的动力。

文章纯手写,转载请带上作者。

java 网站微信登录_网站微信授权登录-JAVA版相关推荐

  1. url 微信公众号开发 配置失效_微信公众号开发之授权登录

    一.UnionId和openId 微信登录最重要的两个返回信息,一个是UnionId,一个是OpenId.两者之间有着必然的联系. UnionID机制的作用说明:如果开发者拥有多个移动应用.网站应用和 ...

  2. 微信公众号开发之授权登录(前端vue篇)

    前序: 由于之前一直是后端直接调用微信授权后,拿到相关信息后再返回给我(就是以前的前后端不分离),所以对微信公众号开发的微信授权登录还一直处于懵逼情况,直到今天有一个项目需要前后端分离,要前端主动去获 ...

  3. Java前后端分离第三方登录_网站前后端分离情况下如何实现QQ微信等第三方登陆-Fun言...

    前言 最近在弄第三方登录,实现起来很简单,就是调几个接口获取个人信息即可,详细了解:maven项目整合QQauth2.0第三方登录详细说明,然后因为本网站是前后端分离的,所以不能再回调接口那里直接跳转 ...

  4. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...

  5. python实现网页微信登录_网站微信登录-python 实现

    最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 微信现在提供两种登录接入方式 移动应用微信登录 网站应用微信登录 这里我 ...

  6. java微信 扣扣登录_转载微信小程序实现微信登录(Java后台)

    作者:Aoess丶 原文:https://blog.csdn.net/yan245294305/article/details/84993265 这两天在自己的小项目中加入了微信小程序的很多功能,今天 ...

  7. 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

    如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程序),用户的 Un ...

  8. 微信公众号扫码授权登录思路

    引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路:这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的内容 ...

  9. 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录

    战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...

  10. 微信小程序 php 手机授权登录

    wxml <!--前台页面,通过判断决定展示登录还是信息--> <view wx:if="{{isHide}}"><view wx:if=" ...

最新文章

  1. umi脚手架搭建的项目_15天零成本搭建静态博客,托管于Github Page
  2. 编译原理-First集和Follow集
  3. 利用MSER算法提取图像区域(车牌区域)的OpenCV代码~
  4. sql怎样删除重复值
  5. 在linux下做源码免杀,Cobaltstrike免杀从源码级到落地思维转变
  6. C# 对话框使用整理
  7. button3 电脑上mouse_专栏F|Cora单词168电脑(下):最强大脑,智慧的产物
  8. 电子工程师不得不读的十大经典书籍
  9. 双栏显示的时候三线格的线太长怎么办?
  10. 好好编程-物流项目02【tomcat插件启动web项目】
  11. 服务器虚拟机迁移的6个步骤,vmware 虚拟机迁移
  12. 【数仓】大数据领域建模综述-《大数据之路》读书笔记
  13. 使用QQ推广作为客服或留言(转载)
  14. 用Python海龟画图画哆啦A梦
  15. Python数据分析pandas入门(一)------十分钟入门pandas
  16. flutter检测网络状态
  17. 【web前端期末大作业】基于html+css+javascript+jquery技术设计的音乐网站(44页)
  18. dropout_keep_prob
  19. 攻防世界MISC进阶之misc1
  20. 选购kvm需要注意的重要事项

热门文章

  1. 二、ArcGIS中shp裁剪dem
  2. 老师用计算机教我们画画拼音,小学一年级语文《汉语拼音13angengingong》第三课时教学设计.docx...
  3. highcharts的柱状图显示数据
  4. 判断tvs能抗住多少千伏浪涌的依据_手机电路浪涌防护和TVS应用
  5. Win11 Android Stuido虚拟机启动失败、崩溃
  6. 设计一款内容阅读app,要求与市面上的产品有差异化,列举其核心功能,画出页面设计原型图(2-3个),说明其产品价值
  7. 【2G模组Air202开发】使用LuatTools下载Luat底层Lod及编写第一个程序:流水灯
  8. 工业物联网快速解决方案
  9. Android知识梳理:点击事件分发机制
  10. mapengpeng1999@163.com Web前端之JS