面试必问:常见的登录鉴权方式有哪些?各自优缺点是什么?(全网最详总结)

张开发
2026/4/6 0:50:36 15 分钟阅读

分享文章

面试必问:常见的登录鉴权方式有哪些?各自优缺点是什么?(全网最详总结)
面试必问常见的登录鉴权方式有哪些各自优缺点是什么全网最详总结一、前言二、什么是登录鉴权三、常见 6 种登录鉴权方式全一、Cookie Session 认证传统经典方式流程图优点缺点适用场景二、Token 认证JWT目前最主流流程图优点缺点适用场景三、Session 共享Redis 存储流程图优点缺点适用场景四、OAuth 2.0第三方登录微信、QQ、支付宝流程图优点缺点适用场景五、SSO 单点登录多系统统一登录流程图优点缺点适用场景六、API Key / AppSecret开放接口鉴权流程优点缺点适用场景七、六种鉴权方式对比表面试背这张八、最经典面试题满分答案1. Session 和 Token 区别2. 项目中如何选择鉴权方式3. JWT 优点是什么九、总结最强记忆版The Begin点点关注收藏不迷路一、前言在 Web 开发、前后端分离、微服务架构中登录鉴权是系统安全的第一道大门。面试官高频问题你们项目用什么登录方式Session、Token、OAuth 有什么区别为什么现在都用 JWT本文一次性把所有主流登录鉴权方式讲清楚原理、流程图、优缺点、适用场景让你面试直接通关。二、什么是登录鉴权登录鉴权 识别用户身份 判断是否有权限访问因为 HTTP 是无状态的必须通过某种方式让服务器记住你。三、常见 6 种登录鉴权方式全Cookie Session 认证Token 认证JWTSession 共享RedisOAuth 2.0第三方登录微信/QQ/支付宝SSO 单点登录API Key / 密钥认证下面逐一带流程图 优缺点讲解。一、Cookie Session 认证传统经典方式流程图登录服务器创建Session返回Set-CookieSessionID浏览器自动保存Cookie每次请求自动携带Cookie服务器通过SessionID识别用户优点实现简单原生支持安全性较高信息存在服务器支持主动踢人、注销缺点占用服务器内存分布式环境需要 Session 共享依赖 Cookie容易 CSRF 攻击跨域困难不支持 APP、小程序适用场景后台管理系统单服务、非分布式项目二、Token 认证JWT目前最主流流程图登录服务器生成JWT Token返回给前端前端存在localStorage/Cookie请求头AuthorizationBearer Token服务器验签无需存储Session优点无状态服务端不存储天然支持分布式、微服务跨域、跨平台极强APP/小程序/Web不依赖 Cookie防 CSRF适合 RESTful API缺点Token 无法作废除非黑名单Payload 可解码不能存密码体积比 SessionID 大过期时间不好控制适用场景前后端分离微服务、分布式APP、小程序、第三方接口三、Session 共享Redis 存储流程图登录Session存入Redis所有服务共享Redis任何服务都能读取Session优点解决分布式 Session 问题保持 Session 开发习惯支持踢人、下线缺点依赖 Redis架构变重跨域一般不适合跨平台适用场景传统项目微服务改造不想改用 Token 的老系统四、OAuth 2.0第三方登录微信、QQ、支付宝流程图点击微信登录跳转到微信授权页用户同意授权微信返回code后端用code换access_token获取用户信息自动注册/登录优点方便快捷用户体验好安全不暴露密码标准化支持多平台缺点依赖第三方平台流程复杂无法控制用户信息适用场景C端产品电商、社区、APP需要快速获客的项目五、SSO 单点登录多系统统一登录流程图访问系统A跳转到SSO中心登录登录成功授权访问系统A访问系统B自动登录优点一次登录全系统通行统一用户管理企业级标准缺点架构复杂成本高依赖 SSO 中心适用场景企业内部多系统中大型平台六、API Key / AppSecret开放接口鉴权流程平台分配API Key Secret请求时携带签名服务端验签优点简单、高效适合服务器间通信安全可控缺点不适合前端密钥不能泄露适用场景开放平台第三方接口调用七、六种鉴权方式对比表面试背这张鉴权方式优点缺点适用场景CookieSession简单、安全、可踢人不分布式、跨域差单服务、后台管理Token(JWT)无状态、分布式、跨平台无法作废、不可存敏感信息前后端分离、微服务、APPRedis Session分布式、可踢人依赖Redis、架构重传统项目微服务改造OAuth2.0用户体验好、第三方登录流程复杂、依赖第三方C端APP、电商、社交SSO单点登录统一登录、多系统通行复杂、成本高企业多系统API Key简单高效、安全不适合前端开放接口、服务通信八、最经典面试题满分答案1. Session 和 Token 区别Session 存在服务端有状态Token 服务端不存储无状态Session 分布式麻烦Token 天然支持Session 依赖 CookieToken 不依赖Token 更适合跨平台、微服务2. 项目中如何选择鉴权方式后台管理系统Session/Redis前后端分离/APPJWT TokenC端产品OAuth2.0企业多系统SSO开放接口API Key3. JWT 优点是什么无状态、易扩展、跨平台、自包含、适合分布式。九、总结最强记忆版Session存在服务器简单但不分布式Token无状态分布式首选主流方案OAuth第三方登录提升体验SSO企业统一登录API Key接口鉴权一句话小项目用 Session大项目用 TokenC端用 OAuth企业用 SSO。The End点点关注收藏不迷路

更多文章