1、概述
在web开发中,咱们常常会让网站接入微信登陆功能,这样用户免于注册帐号,网站开发人员也能够更为方便地获取到用户信息。html
微信登陆能够分为两种状况,一种是网站的扫码登陆,另外一种是在微信浏览器中直接登陆,本节咱们就讲解如何在本身的网站上接入微信登陆功能。web
1、网站扫码登陆置流程
开发文档数据库
具体的开发流程官方文档已经给出了详细的说明,可是文档更关注的是严谨和全面,本节的内容更倾向于简单易懂。下面介绍一下扫码登陆的开发流程。api
首先咱们要有一个注册并认证的微信开放平台帐号(认证要300元人民币)。注册和认证成功以后,以下图所示进入【网站应用】。首次进入以后下方是空白,须要点击【建立网站应用】。而后根据提示加入本身的网站,下图为加入完成后的效果。浏览器
点击【查看】能够看到详细内容,【接口信息】须要申请,申请经过以后才能够开通。安全
开通以后,就能够调用开放平台的接口实现微信登陆功能了。服务器
2、调用接口实现扫码登陆。
网站微信扫码登陆流程微信
- 网站跳转到如下连接:注意链接中的两个参数
- appid:微信开发平台提供的appid
- redirect_url:用户扫码登录后跳转的地址
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
- 在上面地址的页面,用户会看到一个二维码,用户扫码后会跳转到redirect_url指定的地址。
- 在redirect_url对应的页面渲染以前,咱们已经拿到了微信服务器发来的code参数。若是须要获取用户信息,则要利用code、appid、secret三个参数来获取access_token和用户的openid。接口以下所示:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
- 获取到access_token以后,在根据access_tokn和openid获取用户信息,接口以下
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
至此,咱们的服务器就成功获取到了微信用户的信息,而后,若是用户是第一次登录,能够将用户信息记录在数据库中,若是非第一次登录,则能够经过openid获取用户在本身网站的信息。微信开发
3、微信浏览器登陆
上面已经介绍了网站的扫码登陆,主要针对的是PC端的用户。本节咱们讲解微信内的受权登陆,也就是说,若是用户使用的是微信浏览器,那么用户不用使用扫码功能,只要点击一个受权登陆的按钮,就能实现微信登陆了,对用户来讲操做简单了不少。app
在【公众号】设置中,添加本身网站的【业务域名】【JS接口安全域名】【网页受权域名】。
4、接口调用实现微信登陆
在微信浏览器内登陆与扫码登陆的惟一区别就是第一步不一样,扫码登陆须要用户跳转到一个微信服务器提供的有二维码的页面以便获取code参数,而微信浏览器登陆,能够直接让用户访问下面的地址,即可以获取到code参数。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=123#wechat_redirect
这里一样须要提供appid和redirect_url两个值。其他的操做,与扫码登陆获取用户信息相同。
5、总结
简化的微信扫码登陆流程:
- 用户访问网站
- 用户跳转至微信登陆连接
- 经过连接跳转,获取用户的code参数
- 经过code参数获取access_token和openid
- 经过access_token和openid获取用户信息
- 完成微信扫码登陆
本文同步分享在 博客"lmonkey_01"(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。