扫码登录原理,软件凭何信息确认用户身份?

1个回答

写回答

aiying07

2026-01-13 20:10

+ 关注

互联网
互联网

我们从最简单的用户名+密码的方式开始逐步阐述。在用户名+密码这种形式下,只要你提供用户名并且输入与之对应的密码(这是注册时就约定好的),就能够被认定为拥有该账号的所有权,这和你使用哪台设备并无关联。扫码登录功能实际上包含两个潜在功能。其一,OAuth权限认证系统。回顾前面提到的用户名+密码方式,我们在互联网上拥有众多平台的账号,每次登录都要输入用户名和密码,这时我们可以优化登录流程,采用OAuth这种统一授权的形式。例如,你想要在A网站登录,此时你不在A站直接输入用户名和密码,而是由A站跳转到统一登录授权中心(许多网站都提供这种中心,像新浪、Github、腾讯等,当然你也可以自己构建)。若授权中心发现你已经登录,就会附加一个凭证跳转回A站,A站再凭借自身权限加上刚才的凭证来获取你的用户信息,这样就完成了登录过程。并且为确保安全,这个凭证是一次性的。这样的过程是不是很简便?你只需在统一授权中心登录一次,就能够授权给任何接入它的第三方系统,既安全又便捷。其二,二维码。如果能理解上述流程,我们接着往下讲。前面提到的统一授权中心都是以网站形式存在的。在如今以App为主流应用的情况下,这种流程就不太适用了,因为App的呈现方式是在手机上,你无法直接从网站打开手机App,也不能在App授权完成后直接跳回网站。这时就需要利用二维码来预先传递凭证。当然,理论上你可以采用任何方式传递凭证,只要在本次登录会话中保证两边一致就行。不过二维码扫码的形式简单、快速、方便,所以更为流行。开始登录时,PC端网站先通过统一授权中心生成一个凭证(这个凭证实际上和前面流程中最后返回的凭证原理相同),然后将其放入二维码中。App扫码后,把当前用户信息绑定到这个凭证上。PC端这时会不断到授权中心轮询,查看是否已有用户信息,从而完成登录。这两种情况本质上逻辑相同,只是在流程上存在一些小的差异。从被动跳转回来获取用户信息,转变为一开始生成凭证,然后主动轮询用户信息。大量的验证操作都在后端程序进行,所以很难伪造用户信息。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号