首页 > 其他分享 >前端日常一问:说说sso以及常见的实现方式,说说扫码登录的原理

前端日常一问:说说sso以及常见的实现方式,说说扫码登录的原理

时间:2023-02-20 16:44:17浏览次数:41  
标签:扫码 用户 登录 一问 sso 认证 SSO 二维码

sso 是什么

随着互联网的快速发展,人们在工作和生活中需要使用越来越多的应用系统,每个系统都需要单独进行登录操作,这不仅浪费时间,也增加了用户的认证负担。为了解决这个问题,SSO(Single Sign-On)应运而生,它是一种可以让用户在多个应用系统中只需要一次登录,就可以访问这些应用系统的技术解决方案。

常见的SSO实现方式

常见的SSO实现方式有两种:基于令牌的SSO和基于OAuth 2.0的SSO。

基于令牌的SSO

基于令牌的SSO,是指用户登录成功后,认证服务器会颁发一个令牌(Token),然后这个令牌会被传递给其他应用系统,在其他应用系统中验证令牌的合法性,从而实现用户的单点登录。令牌可以是一个加密的字符串,存储在客户端浏览器的Cookie中或者本地存储中,以便客户端发送请求时附带这个令牌,服务端在接收到请求后校验令牌的有效性。

基于OAuth 2.0的SSO

基于OAuth 2.0的SSO,是指使用OAuth 2.0协议的授权机制,让用户通过授权服务器授权给第三方应用访问其它应用的资源,从而实现单点登录。在该方式下,用户需要先通过授权服务器进行认证,并授权给第三方应用,然后第三方应用就可以使用该用户的访问令牌(Access Token)去访问其他应用的资源。

扫码登录方式

除了以上两种方式外,还有一种比较流行的扫码登录方式,即用户可以使用客户端(如微信)扫描二维码实现登录。扫码登录的原理是通过生成一个临时的认证码(AuthCode),用户使用客户端扫描二维码,将认证码发送到认证服务器,认证服务器根据认证码判断用户身份,颁发访问令牌(Access Token)给客户端,客户端携带该访问令牌向应用服务器请求资源。这种方式不需要用户手动输入账号密码,提高了用户体验,同时也增强了安全性,因为不会将用户的登录信息暴露在第三方网站中。

扫码登录的实现方式通常包括以下几个步骤:

1、生成二维码
在认证服务器上生成一个二维码,并将该二维码的信息存储在服务器端。

2、展示二维码
将生成的二维码展示给用户,通常会在登录页面上展示。

3、扫描二维码
用户打开手机上的扫码工具,扫描登录页面上的二维码。

4、向服务器发送请求
扫码工具会向认证服务器发送一个请求,请求包含二维码的信息。

5、验证二维码
认证服务器接收到请求后,会验证二维码的有效性,如果二维码有效,则生成一个加密字符串,并将该字符串存储在服务器端。

6、返回加密字符串
认证服务器返回该加密字符串给扫码工具,扫码工具将该字符串发送给登录页面。

7、登录
登录页面接收到加密字符串后,将该字符串发送给认证服务器进行验证,如果验证成功,则完成登录。

扫码登录的实现方式比较简单,而且非常安全,因为用户的敏感信息不需要在网络上传输。但是,扫码登录只适用于Web应用程序,对于移动应用程序或桌面应用程序则需要采用其他的SSO实现方式。

总之,SSO可以极大地方便用户在多个应用系统之间的切换,提高用户的使用效率,同时也能提高安全性,减少密码泄露和身份盗用的风险。

总结

在实际应用中,SSO的实现也有一些需要注意的问题。以下是一些常见的问题和解决方法:

跨域问题
如果不同应用系统部署在不同的域名下,那么就需要解决跨域问题。一种解决方法是在认证服务器和应用系统之间建立一个代理服务器,将所有的请求都发给代理服务器,再由代理服务器将请求转发给正确的系统。

认证服务器宕机
如果认证服务器宕机了,那么所有的应用系统都将无法使用。为了解决这个问题,可以采用备份认证服务器或者负载均衡等方案。

认证方式选择
不同的应用系统可能使用不同的认证方式,例如,有些应用可能使用基于表单的认证,有些应用则使用基于HTTP头的认证。为了解决这个问题,可以使用统一的认证方式,并提供适配器来适应不同的应用系统。

安全问题
SSO涉及到用户的隐私和安全问题,必须采取一些措施来保护用户的信息。例如,必须采用HTTPS协议来加密所有的通信,防止用户信息被截获或篡改。

总之,SSO是一个非常有用的技术,可以极大地提高用户的使用效率和安全性。在实际应用中,需要根据具体情况选择合适的SSO方案,并注意解决跨域、认证服务器宕机、认证方式选择和安全等问题。

标签:扫码,用户,登录,一问,sso,认证,SSO,二维码
From: https://www.cnblogs.com/mmsxs/p/17137970.html

相关文章