这篇文章是对微信授权登录的一个测试版本,并不能直接在生产上使用,对于在生产上正式使用将会在下一篇中描述。
一,首先需要以下两个数据
appID和appsecret
如何获取这两个数据,请先登录微信公众平台,为什么登录微信公众平台呢?在测试版本里面我们就使用公众平台获取对应的appID和appsecret来进行测试。
登录成功按下图步骤选择公众平台测试账号,这里无需申请公众号,将会提供一个测试账号给你直接使用即可。
进入以后需要登录,登录成功以后出现一下界面,即可获取对应的测试号信息,里面就包括了appID和appsecret两个数据,请记住这两个数据。到这里这两个测试数据就获取成功了。
二,测试号管理页面配置相关信息
第一个要配置的就是测试号二维码,扫码添加一个测试微信号,这个微信号的作用就是将来获取该微信账号的相关信息使用的。
第二个要配置的是体验接口权限表中的配置,这里只需要配置一个即可,即配置一个授权回调页面域名,这个回调域名你可以是任何一个域名,都可以,只要是能够正常访问的就行,这里的话有个要求就是要把协议头去掉,比如:https://www.baidu.com,那么你只需要配置www.baidu.com即可。
三,web开发者工具下载安装和配置
点解以下web开发者工具模块进入配置页面,在这类需要绑定开发者微信号,绑定一个就好了。
再去下载开发工具,如何去下载呢,请看上图中绑定开发者微信号按钮上面有一个web开发者工具文档的连接,点击进入页面。到页面里面根据描述去下载即可,so easy。看完这篇文档你会发现开发工具是如此的强大。
打开就是上图这个样子,需要登录,微信扫码登录一下就行了。这个工具就是我们用于调试使用的,到时候接口直接在这里请求就行,结果和现象都会在这里展示。
四,微信授权官方接口测试
前三步骤基本都是一个准备工作,也是必备的工作步骤,到当前开始就是正式进入微信授权开发了。这里也很简单,只要按照他的官方要求进行就可以了,很easy的。
第一步,先看文档,仔细阅读这篇文档 微信开放文档,全是精华。很详细。
这里还要明白的一点是,我们为什么要微信授权,我们通过微信授权干什么,拿到什么数据,拿到这些数据以后去做什么,要把这几个问题想明白。其实,我们绝大多数地方使用微信授权都是在做登录的时候使用微信授权登录,那么,我们要拿到什么数据呢,就像我们平时登录一样,是要有一个账号,那么我们微信授权以后,其实就相当于是拿微信授权后获取的微信唯一标识作为我们的一个账号去做我们的系统登录,这个唯一标记是需要存储在我们系统数据库里面的,就像是我们的账号一样保存在数据库中,到时候获取用户信息也是根据这个微信的唯一标识去获取的。到这里大概也就解释了上面几个问题了。
这里主要就只是做微信授权的讲解,具体的登录就是配合这自己的业务系统和登录模块进行即可。
微信授权大体分为两大步骤,分四个小步骤,就是通过微信给的授权接口去获取用户授权,这个时候会返回一个code码给我们,后面拉取用户信息等数据的时候就是用这个code码了,后面就是结合系统的业务需求,想干嘛就干嘛了。我们具体结合这开发文档来看。
目录
1 第一步:用户同意授权,获取code
2 第二步:通过code换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
5 附:检验授权凭证(access_token)是否有效
参考这篇微信官方提供的开发文档,按照这4步骤去做就不会出问题了。下面就带着大家按照这四步骤走一遍,走个demo了,希望大家可以看的很详细很清楚。
第一步:用户同意授权,获取code
把其中的参数替换掉,APPID和REDIRECT_URI和SCOPE和STATE进行替换,其中APPID就是我们前文提到的获取的appID,REDIRECT_URI则是授权后重定向的回调链接地址, 请使用 urlEncode对链接进行处理,这里提供一个网址在线URL编码解码工具-UrlEncode编码-UrlDecode解码在线工具,可使用 urlEncode对链接进行处理。SCOPE则是应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )。STATE重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节。具体如下图:
demo链接如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8ff24328e66857a4&redirect_uri=https%3A%2F%2Fwww.baidu.com%2F&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
这里的测试就需要结合上文提到的开发工具了。
请求以后就会弹出获取授权的页面了,我们在还需要点击同意即可,现象是跳转到重定向的回调地址,格式是:redirect_uri/?code=CODE&state=STATE。需要知道的是,如果获取授权以后下次再获取授权则不会弹出该页面,直接重定向路径。code我们也就是在这里拿到了。 需要知道的是code只能使用一次就会失效,这也是为什么我们需要每次授权的原因。
第二步:通过code换取网页授权access_token
可以看到返回了我们需要的数据,格式如下:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
一般情况下我们会使用openid作为我们的唯一用户标识,这里可以当做唯一用户标识,但是:用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID,具体后期再做详细讲解。
后面几步再参考开发文档就能走下去了……
下一篇,《Java版本微信授权登录(升级版)》,主要讲解在实际开发中的使用方法。