二维码
首先,二维码在编制上巧妙地利用构成计算机内部逻辑基础的“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
https://www.cnblogs.com/jiangjunli/p/7436110.html
https://blog.csdn.net/andyliulin/article/details/53612108
https://www.cnblogs.com/0201zcr/p/5133062.html