认证鉴权方案

现在一般使用比较多的认证方式有四种:

  • Session
  • Token
  • SSO单点登录
  • OAtuth登录

1.Cookie + Session

最常见的就是 Cookie + Session 认证。

Session,是一种有状态的会话管理机制,其目的就是为了解决HTTP无状态请求带来的问题。
当用户登录认证请求通过时,服务端会将用户的信息存储起来,并生成一个 SessionId 发送给前端,前端将这个 SessionId 保存起来。之后前端再发送请求时都携带 SessionId,服务器端再根据这个 SessionId 来检查该用户有没有登录过。这个 SessionId, 一般是保存在Cookie中。
如果用户第一次访问某个服务器时,服务器响应数据时会在响应头的 Set-Cookie 标识里将Session Id 返回给浏览器,浏览器就将标识中的数据存在Cookie中。
@RestController
@RequestMapping("/user")
public class UserController {@PostMapping("/login")public String login(@RequestBody User user, HttpSession session) {if ("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())) {// 登录成功 写入Sessionsession.setAttribute("sessionId", user);return "login success";}return "username or password incorrect";}@GetMapping("/logout")public String logout(HttpSession session) {// 注销 删除Sessionsession.removeAttribute("sessionId");return "logout success";}@GetMapping("/api")public String api(HttpSession session) {// 用户操作 判断是否登录User user = (User) session.getAttribute("sessionId");if (user == null) {return "please login";}return "return data";}
}
切记:用户名存在session里面时只能使用session.setAttribute("sessionId", user);
  • 在第一次访问服务器时,服务器会生成一个唯一的session id,并将该id发送给客户端。客户端在后续的请求中会将该session id作为cookie或者请求参数的形式发送回服务器
  • 服务器接收到session id后,会根据该id在服务器端的session存储区中查找对应的session对象。该session对象用于存储用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/233652.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Openstack Train安装】七、glance安装

Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是为该选择提供不同的操作系统镜像。Glance提供Restful API可以查询虚拟机镜像的me…

海光信息荣获ESG金牛科技引领奖!

11月24日,由中国证券报、中国国新控股有限责任公司、南通市人民政府联合主办的”2023金牛企业可持续发展论坛暨第一届国新杯ESG金牛奖颁奖典礼”在江苏南通举行,“国新杯ESG金牛奖”多项获奖名单同期揭晓。海光信息凭借卓越的技术创新实力与行业影响力&a…

SAP 如何检查已安装的SAP UI5 版本

第一个方法是直接从FLP中查看 但是部分高版本的FLP中没有这个about, 那么在当前界面可以使用:CTRL ALT SHIFT S 查看当前版本 根据此版本,去进行你的UI5的开发吧

【Flink进阶】-- Flink kubernetes operator 快速入门与实战

1、课程目录 2、课程链接 https://edu.csdn.net/course/detail/38831

Golang数据类型(数组)

数组重要概念 数组(Array)是一种非常常见的数据类型,几乎所有的计算机编程语言中都会用到它 在Go语言中,数组有如下的特点: 数组里的元素必须全部为同一类型,要嘛全部是字符串,要嘛全部是整数…

【Java学习笔记】 74 - 本章作业

1.验证电子邮件格式是否合法 规定电子邮件规则为 1.只能有一个 2. 前面是用户名,可以是a-z A-Z 0-9 _ - 字符 3. 后面是域名,并且域名只能是英文字母,比如sohu.com或者tsinghua.org.cn 4.写出对应的正则表达式,验证输入的字符串是否为满…

【刷题笔记】两数之和II_二分法||二分查找||边界||符合思维方式

两数之和II_二分法||二分查找 1 题目描述 https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/ 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设…

【软件测试】银行核心业务系统性能测试总结,一篇通透...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 下面讨论的是字符…

zblog免费插件应用中心-zblog最全插件功能

随着网络时代的不断发展,博客已经成为人们分享知识、表达观点的重要平台之一。在众多博客系统中,Zblog因其简洁、高效的特点备受欢迎。然而如何让博客更具吸引力、提高曝光度,成为许多博主关注的问题。在这个问题面前,Zblog插件应…

代码随想录第十六天(一刷C语言)|找树左下角的值路径总和从中序与后序遍历序列构造二叉树

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、找树左下角的值 思路:采用递归 ledcode题目:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ AC代码: /*** Definition f…

Attention机制(笔记)

参考:2.3.2注意力机制-part1_哔哩哔哩_bilibili 什么是attention? 答:注意力放在事物最有辨识度的部分 attention计算机制: 为什么用这个公式可以得到attention? 补充说明(chatGPT给出的解释)&…

音频修复和增强软件iZotope RX 10 mac特点介绍

iZotope RX 10 mac是一款音频修复和增强软件,主要特点包括: 声音修复:iZotope RX 10可以去除不良噪音、杂音、吱吱声等,使音频变得更加清晰干净。 音频增强:iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限…