爱陪小樱桃

导航

 

二维码场景

在日常生活中常常会用到二维码,比如超市支付,系统登录,应用下载等等,了解二维码的原理,可以为技术人员在技术选型时提供新的思路,非技术人员了解了也可以识别受骗等等。

1.在大家使用的时候,大家肯定会疑惑这个码是安全的吗?会泄露我们的个人信息吗?更深度的用户会考虑,我是不是也可以搞个二维码来推广呢?
2.二维码最常用的场景就是通过手机端或者PC端来扫描,登陆同一个系统,比如在微信扫码登录PC端设备,

二维码登录本质是一种登录认证方式,既然是登录认证,要做的也就两件事儿!

1.告诉系统我是谁?
2.向系统证明我是谁?

比如账号密码登录,账号就是告诉系统我是谁,密码就是向系统证明我是谁?那么扫码怎么实现这个二合一的呢?

手机端应用扫PC端二维码,手机端确认后,账号在PC端登录成功了!

这里PC端登录的账号,肯定与手机端是同一个账号,
通过扫码,手机端的信息传到了PC端,
第二件事情:向系统证明我是谁?
扫码登录过程中:用户并没有去输入密码,也没有输入验证码,或者其他的什么码,那是怎么证明的呢?
是不是扫码过程中,把密码传过去了,不可能的,因为太不安全了,因为手机端已经登录了,只要扫码确认是这个手机且是这个账号操作的,就可以间接证明了。

生活中的二维码

一个是条形码?条形码就是一串数字,上边存储了一串数据,就是商品的序列号
二维码和条形码类似,不过他存储的不是数字,还可以是任意字符串,你可以认为他就是字符串的另外一种表现形式。

在搜索引擎中搜索二维码,你可以找到很多在线生成二维码的工具,这些网站可以提供字符串与二维码之间相互转换的功能。

生活中的应用,有的只需要登录一次,以后就不需要登录,这是什么原因?

1.账号密码登录的时候,客户端会将设备信息一起传递给服务端,
2.如果账号密码校验通过,服务端会把账号密与设备进行一个绑定,存在一个数据结构中,这个数据结构中包含了账号ID,设备ID,设备类型等等。
3.然后服务端会生成一个token,用它来映射数据结构,这个token其实就是有着一串特殊意义的字符串,它的意义在于,通过它可以找到对应的账号和设备信息。

1.客户端得到这个token后,需要进行一个本地保存,每次访问系统,api都携带上token与设备信息。
2.服务端通过token,找到它绑定的账号和设备,让后吧绑定的设备信息每次与服务保存的设备进行比较,如果相同校验就通过,返回AP接口,如果不同,那就校验不通过。
所以客户端登录的目的就是为了保存属于自己的token。
那么扫码登录的时候pc端怎么获取自己的token呢,不可能手机端直接把自己的token给PC端用,token只属于某个客户端私有,

  • 用户用扫描二维码,通过二维码获取二维码ID,在调用服务端API,将移动的什么信息与二维码ID一起发送给服务端,
  • 在调用服务端API,将移动端的身份信息与二维码ID一起发送给服务端,
  • 服务端收到信息后,它会把身份和二维进行绑定生成临时token,然后返回给手机端
  • pc端一直在轮询二维码的状态,他可以在界面吧二维码更新为已经扫描
  • 临时token其实和token一样,不同的是临时token只用一次。

二维码的内容是什么?

可以是二维码ID,也可以是URL地址
其实二维码登录就是:告诉系统我是谁?向系统证明我是谁

posted on 2025-03-15 16:11  cherry小樱桃  阅读(38)  评论(0)    收藏  举报