发布于2024-11-02 12:05 阅读(709) 评论(0) 点赞(20) 收藏(0)
网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。
微信用户授权登录接入微信OAuth2.0的第三方应用后,第三方应用可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用。那么实现微信授权第三方登录的最终目的就是拿到access_token,点击查看微信官方文档说明。
第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接: https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
这个链接打开后是一个带有二维码的页面(如图):
AppId: 应用id
scope: 网页端填写snsapi_login
redirect_uri: 用户在微信上点击允许授权后微信回调的地址,该地址的域名需要与创建应用时填写的授权域名保持一致,建议使用encodeURIComponent进行转码
state: 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
注:若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。
为true时,手机点击确认登录后可以在 iframe 内跳转到 redirect_uri,为false时,手机点击确认登录后可以在 top window 跳转到 redirect_uri。默认为 false。
将code、state传给后端,后端通过code、appId、appSecrect调用微信API获取access_token,完成登录,参考文档
按照上面的流程,将链接在网页中通过iframe标签的方式打开,并传递self_redirect=true实现登录后在iframe内实现回调重定向。
官方提供的通过js的方式获取code,但其实我发现最终的效果其实跟方法1几乎一样,通过js的方法创建对象其实也就是在对应的div下插入了一个iframe标签,如下图所示:
效果图:
如果想仅显示二维码,可以设置iframe的样式,并对外层div设置固定大小,并加上overflow:hidden
.login-container {
width: 200px;
height: 200px;
overflow: hidden;
iframe {
transform: scale(0.75);
margin-top: -90px;
margin-left: -50px
}
}
效果图:
var obj = new WxLogin({
self_redirect:true,
id: "login_container",
appid: "",
scope: "",
redirect_uri: "",
state: "",
style: "",
href: ""
});
原文链接:https://blog.csdn.net/qiansitong/article/details/136166717
作者:92wwhehjw
链接:http://www.qianduanheidong.com/blog/article/534367/bd03d2675d8a89ba4b56/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!