微信网页PC端登录扫二维码登录

最近搞得PC端扫二维码登录,写了个控制器,把方法和注意事项都整理了一下,给大家共同学习下。
先说步骤吧:
1.注册微信开放平台https://open.weixin.qq.com,一定要清楚微信开放平台和微信公众平台是分别独立的,不能共用。
2.登录进入——管理中心,网站应用,创建网站应用。填写申请,企业还要盖章,然后设置域名,最后交300元保护费。成功通过验证。获得appid和appSecret两个参数。
3.现在可以在web端里写登录控制器了。
4.微信网站登录的文档在https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=41ab5f757248bbbdcc2aad1a6d52b49fdc19579e&lang=zh_CN。
5.微信登录请求,其实你可以当成是个url跳转。https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
参数 是否必须 说明
appid 是 应用唯一标识
redirect_uri 是 重定向地址,需要进行UrlEncode
response_type 是 填code
scope 是 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
state 否 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
把appid参数传给开放平台。链接页面会显示一个二维码。

6.用户扫码二维码,扫码成功后,会跳转回你传的域名地址。
同时域名后面会带有code和state参数。这个code则是我们需要拿到的钥匙
redirect_uri?code=CODE&state=STATE
7.在redirect_uri跳转的页面或者控制器中,接收code值
code每次会生成一个,用后即会销毁,也就是你不能不停跳转。
8.通过appid、appSecret还有code值,请求open的access_token接口,获得access_token。

"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

参数 说明
access_token 接口调用凭证
expires_in access_token接口调用凭证超时时间,单位(秒)
refresh_token 用户刷新access_token
openid 授权用户唯一标识
scope 用户授权的作用域,使用逗号(,)分隔
unionid 当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。

这里解释一下,access_token是接口凭证,请求接口需要带上,时间为2个小时。openid是获取用户信息的参数,就如username。而unionid则是uid,用户的唯一ID。
9.拿到token和openid后,可以通过UserInfo接口获得用户数据。https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
正确的Json返回结果:

"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1", 
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

}
10.基本上流程就是这样。

流程完了就描述下问题。
1.如果第一步跳转到微信接口时,出现“scope参数错误”,说明appid错误或者你没交保护费。用微信公众号的appid没用
2.请求token的时候,需要通过cURL来抓取,CURL抓取时普遍会出现抓取不到的问题,具体没用深究,估计是https的抓取方式和http不一样,写了个httpGet方法实现了抓取,抓取后内容为json数据,需要decode一下转化为数组
3.为了实现与手机端用户一致性,我们需要记录openid以及unionid。公众号与开放平台的openid是不一样的,唯一相同的unionid。但是这两个openid都能获取到用户信息。我建议除了用户表以外,加一个第三方登录表,字段为 id,uid,type,openid,unionid,refresh_token。type 1是微信端,2是PC端。unionid存在时,就不需要再创建一条用户信息。信息获取后创建session或者cookie

4.为防止csrf跨站请求,state我加入了一个随机数,这个随机数存到session中,当用户扫码确认后,返回时,如果不一致即会被认为跨站请求伪造攻击

具体代码可在我的资源里面下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/55474.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信网页版登陆原理

微信网页版登陆原理 请求微信服务器返回一个会话ID 微信Web版本不使用用户名和密码登录,而是采用二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录,通过请求地址: https://login.weixin.qq.…

web网页登录

web登录验证 1.创建loginDemo项目 2.添加tomcat 3.在web目录下创建jsp文件login fail success UserData 4.修改web.xml设置首页 5.演示 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器…

百度登录界面

1 <!doctype html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>百度一下</title>6 <meta name"Keywords" content"关键字">7 <meta name"Descript…

pc端网页实现微信扫码登录

微信开发文档&#xff1a;https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 点击按钮&#xff0c;跳转到微信授权页面&#xff0c;会出现一个二维码。 //拉取授权页面 let APPID 网页应用的appid let REDIRECT_URI encodeUR…

电脑wifi只能微信聊天但是不能打开百度上网

问题描述&#xff1a;WiFi手机可以连接&#xff0c;电脑上也能连接&#xff0c;可以微信聊天&#xff0c;但是不能浏览器上网&#xff0c;显示域名解析错误。 背景:小编过了年回来上班后&#xff0c;发现公寓里的无线网在电脑上无法访问互联网&#xff0c;就非常的纳闷。首先我…

高级程序员和新手小白程序员区别你是那个等级看解决bug速度

IT入门深似海 ,程序员行业&#xff0c;我觉得是最难做的。加不完的班&#xff0c;熬不完的夜。 和产品经理&#xff0c;扯不清,理还乱的宿命关系 一直都在 新需求-做项目-解决问题-解决bug-新需求 好像一直都是这么一个循环。&#xff08;哈哈哈&#xff09;我觉得一个好的程序…

微软Office Plus吊打WPS Office?不一定,WPS未来被它“拿捏”了

微软Office Plus吊打WPS Office&#xff1f; 微软的Office是一款非常强大的软件。不仅仅在办公领域中能给我们带来便利&#xff0c;在娱乐和生活的各个方面的管理也能带来很多便利。 当然&#xff0c;作为国产办公软件的排头兵WPS与微软Office的抗衡已经有长达30多年&#xf…

百度的文心一言 ChatGTP 的对比

同样的5个问题&#xff0c;让百度的“文心一言”与ChatGPT来回答&#xff0c;两者区别在于&#xff0c;前者是就坡下驴的“傻瓜”式回复&#xff0c;后者是细思极恐的AI脱口秀。抛开高下立判不谈&#xff0c;尽管百度十年磨一剑专攻人工智能&#xff0c;但和国外的AI产业相比&a…

毕业写论文不要傻傻的到中国知网CNKI充值了,分享几个常用的写论文必备的网站!

我把这 7 个工具&#xff0c;发给了毕业两年的学姐&#xff01;看完学姐都懵了&#xff0c;说&#xff1a;早知道有这么好的资源&#xff0c;当年在学校写毕业论文也不会那么痛苦了&#xff01; 1、搜论网 找学术论文&#xff0c;就上搜论网 www.soolun.com为老师、学生、媒…

【快速写好毕业论文】你不得不知晓的七个常用文献搜索平台

本篇推文共计2000个字&#xff0c;阅读时间约3分钟。 01 引言 又是一年的毕业季&#xff0c;毕业论文成为了大多数同学们难以逾越的屏障。 毕业论文存在以下特点&#xff1a; 章节多、页码多、图表多、文献多、编号多。 那么如何快速写好毕业论文&#xff0c;安稳度过学生阶段最…

大数据时代,我竟然在用Excel和SPSS做数据分析,真香!

目录 写在前面概述什么是统计?统计.计算机与统计软件(重点)变量及其分类数据收集 第二章问卷的组成和结构几种典型的问卷题型: 第三章:数据的录入和清理数据的录入数据的清理3.4在Excel中核对数据建立调查问卷的SPSS数据文件 第4章单变量的一维频率分析利用SPSS对单选题进行一…

教你接入Midjourney,不用梯子也能玩

1、效果 话不多说&#xff0c;先上最终出图效果&#xff0c; 我给的关键词是一只白色的猫 2、接入流程 API文档可以来这里查&#xff08;可以白嫖100次midjourney出图和10次gpt4体验&#xff09;&#xff0c;我这里精简一下接入流程&#xff0c;方便大家快速接入 2.1、文字生…

超级编程AI登上Science封面!AlphaCode编程大赛卷趴一半程序员

【导读】在编程比赛中达到人类水平的AlphaCode&#xff0c;再登Science封面。 这个12月&#xff0c;正当OpenAI的ChatGPT势头正旺时&#xff0c;那个曾经卷趴一半程序员的AlphaCode登上Science封面了&#xff01; 论文链接&#xff1a;https://www.science.org/doi/10.1126/sc…

斯坦福2023【FrugalGPT】减少大模型的商业化应用成本

文章目录 主要解决问题采用什么方法Prompt adaptationLLM approximationLLM cascade 实验结论讨论与展望 FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance 主要解决问题 这篇文章主要是要解决如何降低调用大语言模型的成本(Chat…

智见|黄铁军:未来的大模型生态中将会只有少数赢家

2023智源大会可谓群星璀璨。中外200余位人工智能顶级专家参会&#xff0c;人工智能领域最关键的人物、机构悉数亮相。 全面、专业、前沿&#xff0c;会场上大咖们观点激荡、多元碰撞&#xff0c;会场下观众们兴奋异常、座无虚席。 会上&#xff0c;北京智源人工智能研究院院长黄…

开放丨Kaldi语音识别理论与实践

语音识别是一门涉及数字信号处理、人工智能、语言学、数理统计学、声学、情感学及心理学等多学科交叉的科学。这项技术可以提供比如自动客服、自动语音翻译、命令控制、语音验证码等多项应用。近年来&#xff0c;随着人工智能的兴起&#xff0c;语音识别技术在理论和应用方面都…

【语音之家】AI产业沙龙—VoxSRC-22说话人识别挑战赛快商通方案介绍

由CCF语音对话与听觉专委会 、中国人工智能产业发展联盟&#xff08;AIIA&#xff09;评估组、快商通、语音之家、北京希尔贝壳科技有限公司共同主办的【语音之家】AI产业沙龙—VoxSRC-22说话人识别挑战赛快商通方案介绍&#xff0c;将于2022年10月9日18:30-19:30线上直播。 沙…

说话人识别(speaker Recognition/Verification)简介

1.分类 2.研究方向 说话人识别研究方向主要有三个&#xff1a; 语音信号参数化&#xff1a;即提取音频特征spectral features&#xff0c;目前主流研究都采用MFCCs系数&#xff0c;以及其Δ和ΔΔ系数(即时间上的一阶导数和二阶导数)。什么是MFCC系数以及如何提取可以看这个…

听障人士亲述:我们在VRChat用手语交流,成员规模5000人

如果你在B站上搜索VRChat&#xff0c;排在前面的热门视频几乎都是与老外聊天的内容。除了练习语言、交文化流外&#xff0c;你还能在VRChat上遇到不少哇哇乱叫的小孩。作为一款VR社交应用&#xff0c;除了有趣的小游戏外&#xff0c;说话聊天也是VRChat关键的玩法之一。 而有这…

AI应用系列--- Talking Photo 会说话的照片

利用HeyGen的服务可以生成有趣的Talking photo&#xff0c;方法有二&#xff1a; 1、访问HeyGen - AI Video Generator 网站&#xff0c;登录后即可根据提示或者案例生成talkingphoto 2、是使用HeyGen的Discord​​​​​​机器人 Discord​​​​​​机器人&#xff1a;http…