Java微信授权登陆的实现示例

前提:

微信公众平台:注册微信认证的公众号也就是服务号 ,拥有跟高级权限的微信接口。(注册服务号需要一些企业信息,需自己或者公司解决)

注: 2018年12月起 订阅号不能认证升级为服务号。但可以将你的订阅号迁移至另一个公众号,需300元费用。

准备公众号的:APPID 与  APPSECRET

二、服务号注册成功后,如果项目也有服务号的公众号平台,跟项目负责人沟通将你个人的微信号添加为服务号的管理

找到左边导航栏最下面的 基本配置 进去, 记住公众号的 AppId 与 AppSevrect , 如果AppServret忘记了重置重新记住。

配置IP白名单,项目所处的IP配置进去,如拿自己的本机ip用于临时的配置上去,等项目上线重新配置IP。

然后微信登陆需要微信网页授权,在公众中网页授权需要配置一个域名,准备一个备案的域名,域名备案好大概需要20个工作日,如果没有可以下载 花生壳软件 新手注册 会送一个免费域名 可以用来做测试,如果有备案好的域名当然更好。

没有备案的域名情况,用花生壳 内网穿透测试

自己注册 会送个免费的域名 然后花6块永久的内网穿透体验版 注册好后,内网穿透配置

配置好后可以诊断测试,确保配置的端口 在运行中,如果是项目的端口项目要处于运行中状态,不然会连接失败

这些都没问题后回到 在公众号内的左边导航找到 公众号设置 ----- 功能设置 --- 网页授权域名 进行域名授权配置。

一、域名授权需要你下载一个文件放置你的域名根目录下,也就就是你域名访问的项目的根目录下,然后在通过浏览器 域名/文件名.txt 可以访问到文件中的内容,这个是重点,一定要可以访问的到文件内容,然后在去网页授权域名绑定域名保存就好。配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权

如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

二、记住是域名,不是URL。不需要带http。

文件放置项目的根目录或者webapp下,可以通过浏览器  域名/文件名.txt  访问文件内容,也可放置项目的目录下,访问时 域名/目录名/文件名

这里你可能会遇见配置失败 报 找不到这个文件或时文件内容不匹配

注意看你是否放置根目录下,位置没错。项目是否有拦截器拦截了导致访问不到该文件

以上都都弄好了开始我们重点编码。

微信授权登陆流程:

登陆授权作用域分为两种:

一 、静默登陆 scope参数值为 snsapi_base;只能获取到用户openid。好处是静默认证,无需用户手动点击认证按钮,感觉上像是直接进入网站一样。

二、 授权登陆 scope参数值为 snsapi_userinfo;可以获取到openid、昵称、头像、所在地等信息。需要用户手动点击认证按钮

授权登陆步骤:

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)和openid

3、通过网页授权access_token和openid获取用户基本信息

一、 微信登陆触发按钮或图片链接

在首页准备一个按钮或者一个链接用来发起请求。

这里我们用一个链接做示例

1.通过微信接口获取code

微信获取code接口: https://open.weixin.qq.com/connect/oauth2/authorize?

参数下表:


参数


是否必须


说明


appid



公众号的唯一标识


redirect_uri



授权后重定向的回调链接地址,请使用urlencode对链接进行处理


response_type



返回类型,请填写code


scope



应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)


state



重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节


#wechat_redirect



无论直接打开还是做页面302重定向时候,必须带此参数

code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

Controller控制器:

微信用户授权确认登陆

  • 第一步登录链接拼好后,在手机微信中打开,微信便会跳转到确认授权页面,点击确认授权即可。(这一步,不用开发者做处理!)
  • 用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。

二、获取 openid

请求与带携带参数

返回的数据字段

代码

三、获取用户信息

请求与参数

返回的JSON数据及字段解释

代码:

最后的 回调请求 回授权成功页面

获取到用户信息可进一步进行业务处理,

成功页面

结果图

首页:

用户授权确定登陆:

授权成功:

详情也可去看官方文档:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140842&t=0.2934098934066318#2

到此这篇关于Java微信授权登陆的实现示例的文章就介绍到这了,更多相关Java微信授权登陆内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实现微信网页授权的示例代码

    开发前的准备: 1.需要有一个公众号(我这里用的测试号),拿到AppID和AppSecret: 2.进入公众号开发者中心页配置授权回调域名.具体位置:接口权限-网页服务-网页账号-网页授权获取用户基本信息-修改 注意,这里仅需填写全域名(如www.qq.com.www.baidu.com),勿加 http:// 等协议头及具体的地址字段: 我们可以通过使用Ngrok来虚拟一个域名映射到本地开发环境,网址https://www.ngrok.cc/,大家自己去下载学习怎么使用 同时还需要扫一下这个二

  • 使用weixin-java-tools完成微信授权登录、微信支付的示例

    本文为学习记录weixin-java-tools实现公众号微信支付. 码云地址:点我 // 授权登录用到 <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>3.1.0</version> </dependency> // 微信支付用到 <depende

  • Java微信授权登陆的实现示例

    前提: 微信公众平台:注册微信认证的公众号也就是服务号 ,拥有跟高级权限的微信接口.(注册服务号需要一些企业信息,需自己或者公司解决) 注: 2018年12月起 订阅号不能认证升级为服务号.但可以将你的订阅号迁移至另一个公众号,需300元费用. 准备公众号的:APPID 与  APPSECRET 二.服务号注册成功后,如果项目也有服务号的公众号平台,跟项目负责人沟通将你个人的微信号添加为服务号的管理 找到左边导航栏最下面的 基本配置 进去, 记住公众号的 AppId 与 AppSevrect ,

  • 详解用vue.js和laravel实现微信授权登陆

    在laravel框架我们使用安正超的package 网址:https://easywechat.org/ 有专门的针对laravel的安装包,请参见如下网址:https://github.com/overtrue/laravel-wechat 下面来说说具体的安装: 1.安装package composer require overtrue/wechat 2.在app/config/app.php 中注册 ServiceProvider Overtrue\LaravelWechat\Servic

  • 利用Spring Social轻松搞定微信授权登录的方法示例

    微信第三方登录有两种方式:扫码登录(微信开放平台)和公众号登录(微信公众平台) 扫码登录可以用于PC等跨平台应用,而公众平台必须在微信app内使用,且必须关注公众号. 下面以公众平台为例,介绍如何基于Spring Social实现微信用户授权并获取到用户信息.(微信开放平台类似) 第一步:到微信公众平台后台注册应用并进行相关设置 微信公众平台后台地址: https://mp.weixin.qq.com/ 也可以先注册一个测试号: https://mp.weixin.qq.com/debug/cg

  • Java 模拟cookie登陆简单操作示例

    本文实例讲述了Java 模拟cookie登陆简单操作.分享给大家供大家参考,具体如下: 最近在做将禅道上的功能接口做到手机端,在做登陆的时候,看了禅道的源码,是由cookie来登陆,所以要做一个模拟cookie登陆的接口,将拿到的cookie放到每次接口请求的头部中去,就可以正常访问了. import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * @Author:

  • vue 微信授权登录解决方案

    背景 vue前后端分离开发微信授权 场景 app将商品分享到微信朋友圈或者分享给微信好友,用户点击页面时进行微信授权登陆,获取用户信息. 问题:没有固定的h5应用首页.授权后重定向url带参数并且很长 本人愚钝,开发过程中,尝试过很多方法,踩坑不足以形容我的心情,可以说每一次都是一次跳井的体验啊. 1.一开始是前端请求微信连接,返回code,然后code作为再去请求后台接口获取token,后面看到别人的博客说这个方法不好,最好就是直接请求后台接口,然后后台返回url做跳转,所以就采用了最传统的方

  • 小程序实现授权登陆的解决方案

    前言 之前写过一个关于微信授权登陆的文章 传送门 最近在做小程序的项目,依旧是商城,又开始研究微信的登陆授权坑,第一次接触小程序,授权登陆也是一塌糊涂以后再慢慢的改进 场景 微信用户可以通过搜索进入小程序 也可以通过别人分享进入小程序 进入小程序之后需要用户授权拿到用户信息进行注册 代码实现 初始化页面home页用户第一次进入小程序必须授权后台注册并登陆 app.json { "pages": [ "pages/home/index", "pages/lo

  • php版微信公众平台之微信网页登陆授权示例

    本文实例讲述了php版微信公众平台之微信网页登陆授权.分享给大家供大家参考,具体如下: 微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看. 文件1:index.php //换成自己的接口信息 $appid = 'XXXXX'; header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&r

  • 微信小程序授权登陆及每次检查是否授权实例代码

    授权登录 <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo" class="fix">登录</button> //index.js //获取应用实例 var APPID ='xxx' var SECRET = 'xxx' const app = getApp() Page({ data: { list:

  • java微信扫描公众号二维码实现登陆功能

    本文实例为大家分享了java微信扫描公众号二维码实现登陆的具体代码,供大家参考,具体内容如下 前提条件: 1.微信公众平台为服务号, 2.服务号实现了账号绑定功能,即将open_id 与业务系统中的用户名有对应关系 具体实现原理: 1.用户访问业务系统登陆页时,调用二维码接口,获得二维码的ticketid,同时将sessionid,ticketid和二维码的seceneid保存 2.返回登陆页时,根据ticketid获得微信二维码 3.页面通过ajax发送请求,判断是否已经扫描成功. 4.公众平

  • Java微信支付之服务号支付代码示例

    Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servlet,一个是统一下单UnifiedorderServlet,一个是支付回调PayCallBackServlet,你们可以自己封装. 一是统一下单UnifiedorderServlet: import java.io.BufferedReader; import java.io.IOException

随机推荐