PC端实现微信登录浅析
二维码

首先,二维码在编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。简单来说 ,每一个二维码图像都含有一些特定的信息,人们利用数字图像处理技术使计算机能够对图像进行运算和处理,二维码(如右图)图像上的像素矩阵在计算机中处理时,有黑点的标记为“1”,空白的标记为“0”,当二维码被输入设备(扫描仪,摄像头)读取到计算机时成为一串类似“10101000011101111”的二值代码。这串代码是一个网址链接。
我们在使用微信扫码时发生了什么
假设这样一个情形:
- 打开一个网页,点击“登录”或“注册”按钮,弹出一个二维码,提示打开手机微信客户端扫码登录或注册;
- 坐在屏幕前的你轻松地拿出手机打开微信扫码,手机微信显示出了网址信息并提示确认登录,点击确认登录
- 网页显示登录或注册成功,进行下一步骤······
我们轻松登录的背后,计算机和服务器做了许多工作:
- 网站后台向微信服务器发送请求返回一个二维码,或者网站自己实例化一个自己的二维码;显示在页面上,供用户扫码
- 微信用户允许授权第三方应用后,手机微信会返回给网站一个code(临时授权票据)参数;
- 关键:网站通过code参数加上AppID和AppSecret得到access_token(令牌),网站后端利用令牌在微信服务器获取用户信息,执行登录或注册操作
网页实现微信扫码登录
扫描的二维码不是网站随意生成的,它必须是能够被微信程序识别的,如果用微信扫描它不接受的二维码,微信会返回给用户一些信息,如上图二维码在用微信扫描后会返回一个支付宝链接,用户只能通过支付宝app或浏览器才能看到解析出的信息。第三方应用要想成功获取扫码用户的信息完成登录或注册(也就是获得用户的个人信息)只能向微信服务器发起请求。为此我们需先向微信系统“验明正身”——申请认证公众号,获取权限。
还好在微信开发者文档中规范了我们获取用户信息的方法和途径。在申请到认证公众号之前,我们可以先通过测试号申请系统,快速申请一个接口测试号,开始接口测试开发。在开发过程中,我们可以使用接口调试工具来在线调试某些接口。

参考资料:https://baike.baidu.com/item/%E4%BA%8C%E7%BB%B4%E7%A0%81/2385673?fr=aladdin
PC端实现微信登录浅析的更多相关文章
- 微信开放平台PC端扫码登录功能个人总结
最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录: 若当前账号未绑定微信账号,扫描后提示“ ...
- 利用WxJava实现PC网站集成微信登录功能
原文地址:https://mp.weixin.qq.com/s/rT0xL9uAdHdZck_F8nyncg 来源:微信公众号:java碎碎念 1. 微信开放平台操作步骤 微信开放平台地址:https ...
- PC端网站微信扫码登录
需求分析:用户通过扫描我们网页的二维码,如果已经绑定我们平台的账户,即成功进入首页,否则提示先绑定个人微信账号. 1.绑定微信账号:是通过关注微信公众号实现绑定个人微信账号.首先通过后台接口获取到ti ...
- pc端用微信扫一扫实现微信第三方登陆
官方文档链接 第一步:获取AppID AppSecret (微信开发平台申请PC端微信登陆) 第二步:生成扫描二维码,获取code https://open.weixin.qq.com/conn ...
- Java SpringMVC实现PC端网页微信扫码支付完整版
一:前期微信支付扫盲知识 前提条件是已经有申请了微信支付功能的公众号,然后我们需要得到公众号APPID和微信商户号,这个分别在微信公众号和微信支付商家平台上面可以发现.其实在你申请成功支付功能之后,微 ...
- PC网站应用接入微信登录
参考文档: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&ve ...
- 移动端,PC端,微信等常用平台和浏览器判断
var wzw={ //浏览器相关信息 //android webview 需要app进行支持,Android web view初始化时,在navigator中添加标识 browser:{ versi ...
- react网页版聊天|仿微信、微博web版|react+pc端仿微信实例
一.项目介绍 基于react+react-dom+react-router-dom+redux+react-redux+webpack2.0+nodejs等技术混合开发的仿微信web端聊天室react ...
- c#版在pc端发起微信扫码支付
等了好久,微信官方终于发布了.net的demo. 主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式 ...
随机推荐
- DML、DDL、DCL的分别是什么
DML.DDL.DCL的分别是什么 一直以来,分不清这三者的简称代表什么,甚至在面试中遇到可能会张冠李戴.今天特意记录一下. 一.DML(data manipulation language) 数据操 ...
- mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)
mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES) 解 ...
- Java基础--面向对象编程1(类与对象)
1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...
- 1.7分布式工具配置及安装(仅供学习Xshell,VMware)
前言 最近因为换工作以及其他的一些琐事,耽误了更博时间,再加上分布式的这几个软件之前没撸过....这学习这几个工具上也花了点时间 本篇博客为后续分布式的学习提供基础的安装和配置. 首先,系统为Cent ...
- 适用于单片机的数据加密算法:xxtea
转:https://www.cnblogs.com/LittleTiger/p/4384741.html 各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加 ...
- Primavera——免费版本的下载和使用
1.oracle收购了Primavera后,开启了以下版本的免费使用. 进入License Codes查看目前支持的版本,并下载与下载版本的无线许可文件. 2.下载软件 进入Oracle Softwa ...
- Linux忘记root密码 单用户模式 及启动加密
单用户模式: 在系统启动引导读秒时,按任意键进入系统选项 再按 e 键 选择第二项 按 e 进入编辑 输入 空格 1 然后回车 再按B 键 不需要密码即可进入系统 再passwd ...
- kalilinux渗透测试笔记
声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...
- core ML学习
Core ML工具是一个Python包(coremltools),托管在Python包索引(PyPI)上. 从表格中可看出,支持caffe工具. 使用与模型的第三方工具相对应的Core ML转换器转换 ...
- Node Graph ......
以前写过好多次,但是都没写完....主要是节点树的执行过程.这次打算好好写完. 这次目的是写一个 类似houdini sop下的 管理过程 目的是把大量流程中的杂乱比如后台处理,Arnold-> ...