面试题答案
一键面试1. 基于用户名和密码的认证
- 原理:用户在登录时提供预先设定的用户名和密码,系统将其与存储在数据库或配置文件中的用户名 - 密码对进行比对,若匹配则认证成功。
- 适用场景:适用于开发测试环境以及对安全性要求相对不是极高的内部业务系统,其优点是简单易懂、实现成本低。
2. Token认证
- 原理:用户登录成功后,系统会生成一个包含用户信息和权限等内容的Token(令牌),之后用户每次请求都需携带该Token。服务器收到请求后,通过验证Token的有效性来确认用户身份及权限。
- 适用场景:广泛应用于前后端分离架构、微服务架构,因为Token可跨域使用且便于分布式部署,能轻松实现单点登录(SSO)等功能。
3. OAuth(开放授权)
- 原理:OAuth允许用户授权第三方应用访问其在另一个服务提供商上的资源,而无需将用户名和密码提供给第三方应用。它通过一系列的授权流程,涉及到资源所有者、客户端、授权服务器和资源服务器之间的交互,生成访问令牌。
- 适用场景:适用于需要第三方应用接入的场景,比如社交媒体登录等,方便用户使用已有账号登录第三方应用,同时保护用户隐私和资源安全。
4. SSL/TLS双向认证
- 原理:在常规SSL/TLS单向认证基础上(服务器向客户端证明自身身份),增加客户端向服务器证明身份的过程。客户端和服务器都持有数字证书,在通信建立时互相验证对方证书的合法性。
- 适用场景:适用于对数据安全和隐私要求极高的场景,如金融行业、医疗行业的数据交互,防止中间人攻击,确保通信双方身份真实可靠。