登录的几种方式

一、session

1、客户端发送请求,服务器将登录信息存储在 Session 中,Session 依赖于 Cookie(cookie指的就是在浏览器里面存储的一种数据,仅仅是浏览器实现的一种数据存储功能。Cookie实际上是一小段的文本信息。),即服务器创建 Session 时会分配一个 SESSIONID,并在响应时将这个 SESSIONID 存储到 Cookie 中。
2、客户端收到这个 Cookie 后自动保存,并在下次访问时带上这个 Cookie,届时服务器就能通过这个 Cookie 中的 SESSIONID 找到对应的 Session 从而识别用户。

3、问题:对于分布式系统而言,服务器之间是隔离的,Session 是不共享的,存在 Session 共享问题

cookie与session区别
1、cookie数据存放在客户的浏览器上,session数据放在服务器上;
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用cookie;

二、token

1、客户端通过账号密码登录。
2、服务器通过查询数据库进行验证。
验证成功后 ,创建一个 Token 存储在 Redis 中,并将这个 Token 返回给客户端。
3、客户端收到这个 Token 后将其保存,并在下次访问时带上这个 Token。
4、客户端再次访问服务器时携带 Token。服务器 验证 Token:通过请求头中的 Token 查询 Redis 中存储的用户信息即可识别用户。

三、JWT

1、概念

JWT (Json Web Token),JWT 由三部分组成:Header(加密算法和 Token 类型)、Playload(数据)、Signature。

// Decoded
header = {
  	"alg": "HS256",
  	"typ": "JWT"
}
playload = {
  	"sub": "1234567890",
  	"name": "John Doe",
  	"iat": 1516239022
}
signature = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), 签名Secret)
  
// Encoded
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.7hQ9doI17Q47YK31oBIf-etsfFTVhSK9wwqgoOOr_zs

 Header 经过 BASE64 编码后生成字符串。

 Playload 经过 BASE64 编码后生成字符串。

 Signature 将前两部分内容 + 密钥,HS256 算法进行加密签名。

2、优点:不依赖Cookie,使得其可以防止CSRF(跨站请求伪造)攻击;

适合分布式系统。

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库可以通过多种方式进行登录。一种常见的方式是使用sqlplus命令行工具进行登录。你可以使用以下命令登录到Oracle数据库: - 使用操作系统权限认证的Oracle sys管理员登录:sqlplus / as sysdba [1] - 使用不暴露密码登录方式:sqlplus /nolog,然后在登录提示符下输入用户名密码 [2] - 使用非管理员用户登录:sqlplus用户名/密码 [2] 另外,还可以通过DBConsole或SQL Developer进行登录。对于DBConsole,你可以在浏览器中输入相应的URL,并输入用户名密码进行登录 [3。而对于SQL Developer,你可以从开始菜单中找到相关程序并打开,然后输入相应的用户名密码进行登录 [3。 总之,根据你的需求和具体情况,选择适合的登录方式即可。123 #### 引用[.reference_title] - *1* *2* [Oracle 数据库登录详解](https://blog.csdn.net/Xiayebuliang/article/details/128307339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [连接登陆到ORACLE数据库的几种方式。](https://blog.csdn.net/BreseLong/article/details/106689602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值