一直好奇这个功能,昨天终于走通。这里记录一下。 微信官方介绍
在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微 信登录且通过审核后,可开始接入流程。
获取二维码
官方文档已经写明,开发者账号审核要¥300,网站应用在开放平台的管理中心中即可创建,审核也很快。审核通过之后就拿到了AppID和AppSecret。刚开始搞成公众号的AppId导致url一直获取不到二维码,提示scope或没有权限。
另外网站应用的域名也不要写错。写错了,改一次起码要等第二天才能玩了。
https://open.weixin.qq.com/connect/qrconnect?appid=wxd96be4258f671daa&redirect_uri=http://www.warmwood.com/WeiXinAuth&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect
参数正确之后就可以得到正确的二维码。接下来就是获取用户信息并登录。
实现登录
这个时候我傻了一下,这怎么调试呢,二维码只认网站应用中设置好的域名,你的localhost玩不起来。难道打日志?还要到服务器上看日志记录,这个过程有点纠结。在知乎上看到微信发布了一个Web开发者工具。下下来不知道怎么本地调试,没有见到设置的地方(羞愧中...)。因为代码不多,先用笨办法实现了。这里用到了Senparc框架。
code = Request.QueryString[ state = Request.QueryString[ (code != Logger.Info( + + url = result = <OAuthAccessTokenResult>(, url, = user =); }
OAuthApi.GetUserInfo获取到了相关的用户信息,包含用户的头像,城市等,这样方便我们创建或者查找到用户,然后SignIn即可。但如果一个用户用多种第三方登录,这个是就需要判别这些号是同一个人,而不至于创建多个用户。
获取到的信息没有邮箱和密码,需要再做个页面让用户设置邮箱和新密码
公众号登录
微信内登录和网站扫码不一样。scope是用userinfo. 网站扫码需要在开发平台中创建网站应用,这两者的得到的openid不一样,但支付的appid必须和商户的id匹配,否则不能支付。
<a title="微信登录" class="logwx" id="zhilogon" href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxd6bc2f224b5ffbac&redirect_uri=http://www.xxx.com/weixinAuth&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"> <img src="/images/logwx.png" /> </a>
如果没有使用公众号的appid,用创建的网站应用的appid也是可以一键登录的,区别就在于你的商户号绑定的是哪个appid,这决定这个openid能不能用来公众号内的支付。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0caae1edac6498a2&redirect_uri=http://www.xxx.com/weixinAuth&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect
公众号和网页应用的登录界面分别如下
界面略有不同。
以上是微信登录的一些新得的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),