Java实现单点登录

这篇具有很好参考价值的文章主要介绍了Java实现单点登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【1】Token介绍

(1)什么是Token?
Token,也称为“令牌”,是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。比如如下形式:39faf62271944fe48c4f1d69be71bc9a

(2)为什么使用Token
传统验证用户身份的方式,大多为基于服务器验证的方式,即cookie+session的方式,由于HTTP协议是无状态的,导致程序需要验证每一次请求,从而辨别客户端的身份。

用户登录成功将其信息存入session中,用户每次请求都会将携带session id的cookie一起发送器服务端,进行校验,随着Web、应用程序、以及移动端的崛起,这种验证方式弊端逐渐显现,尤其是在可扩展性方面。

引发的问题比如用户增多导致内存开销较大、CORS(跨域资源共享)以及CSRF(跨站请求伪造)等。

引入Token验证机制后,请求会发送token而不再是发送cookie能有效够防止CSRF,即使在客户端使用cookie存储token,但cookie也只有存储功能,而不再具备验证功能,因此安全性得到了极大的提高。

而且只要token设计的足够复杂,除非用户泄露,否则几乎没有被破解的可能,加上token是有时效的,在有限的时间加上有限的算力,更是无懈可击,这也类似于加密资产比如比特币钱包对应的私钥,安全性极高。

另外Token可以有效减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

(3)基于token的身份验证流程
1-客户端使用用户名跟密码请求登录
2-服务端收到请求,去验证用户名与密码
3-验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
4-客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
5-客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
6-服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

Java实现单点登录,java,github,开发语言
Java实现单点登录,java,github,开发语言

(4)优点
1-每一次请求都需要携带token ,需要把token 放到HTTP的Header 里
2-基于token 的用户验证是一种服务端无状态的认证方式,服务端不用存放token数据,用解析token的计算时间换取 session的存储空间,从而减轻服务器的压力,减少频繁的查询数据库
3-token 完全由应用管理,所以它可以避开同源策略
Java实现单点登录,java,github,开发语言

(5)Token的使用
在我们做用户权限认证的时候,每次请求都会将Token放在请求头中一起发送到服务器端,服务器端通过拦截器进行拦截校验,如果不存在Token、Token错误或者Token过期,则拒绝请求,有效则返回相应的返回结果。

Token生成示例
使用用户唯一ID + 系统时间 + 随机数 + 过期时间得到用户信息数据,对用户信息数据进行RSA非对称加密/AES对称加密得到一个加密字符串A,将加密字符串A再次进行签名等到一个签名数据。然后将签名数据和加密字符串进行拼接,最后使用base64进行编码,得到最终的token令牌。

(6)JWT
JSON Web Token(JWT)是一个开发标准(RFC 7519),它定义了一种紧凑独立的基于 JSON 对象在各方之间安全地传输信息的方式。这些信息可以被验证和信任,因为它是数字签名的。JWTs 可以使用一个密钥(HMAC算法),或使用 RSA 的公钥/私钥密钥对对信息进行签名。文章来源地址https://www.toymoban.com/news/detail-826594.html

到了这里,关于Java实现单点登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 单点登录解决方案

    Java 单点登录 (SSO) 有以下几种解决方案: 基于令牌(Token)的 SSO:用户在登录成功后,得到一个令牌,然后该令牌被用于访问其他相互信任的应用程序。Shiro 和 Spring Security 都支持基于令牌的 SSO。 基于代理(Proxy)的 SSO:一个代理服务器接收来自用户的请求,并将其重定向到适当

    2024年02月12日
    浏览(35)
  • 微信公众平台测试号申请、使用HBuilder X与微信开发者工具实现授权登陆功能以及单点登录

    测试账号申请 测号响应流程:客户端发送请求,微信服务器收到请求后,转发到开发者服务器上,处理完后在发送给微信服务器,在返回给客户端 1、打开微信公众平台,点击测试帐号申请。地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login, 通过微信扫一扫授权就能进

    2024年02月02日
    浏览(62)
  • Java开发:实现用户注册登录的功能

    一、前言 在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。 二、准备工作 1、通过

    2023年04月09日
    浏览(50)
  • Java学习:小程序微信登录开发实现

    此次开发的实现是基于B站黑马课程的学习;只涉及后端的实现,前端代码不会。。   微信官方小程序登录开发文档链接: 小程序登录 | 微信开放文档|小程序登录 | 微信开放文档 小程序实现微信登录,完成具体业务的实现参考下图:         登录的实现需要三个端口实现

    2024年04月23日
    浏览(40)
  • 前端如何实现单点登录

    单点登录是什么?你是怎么理解的?单点登录是如何实现的 普通登录 提到单点登录,首先可以想到传统登录,通过登录页面根据用户名查询用户信息,判断密码是否正确,正确则将用户信息写到session,访问的时候通过从session中获取用户信息,判断是否已登录,登录则允许访

    2023年04月08日
    浏览(43)
  • 前端单点登录实现的三种方式

    1.同源不跨域 使用document.cookie或者localStorage可以直接存取 2.跨域主域名相同 可以使用cookie-js插件存储cookie,在设置cookie是添加domain参数,例如 Cookies.set(\\\'token\\\', 值, { expires: 60, path: \\\'\\\', domain: \\\'taobao.com\\\' }) 只有主域名相同,浏览器在访问时才会携带对应的 cookie 3.跨域 使用iframe内嵌

    2024年04月27日
    浏览(36)
  • 若依微服务集成CAS,实现单点登录

    若依(RuoYi)微服务是一款基于Spring Cloud Alibaba开发的企业级微服务框架,采用前后端分离方式,使用了常用的微服务组件,如Feign、Nacos、Sentinel、Seata等,提供了丰富的微服务治理功能,如服务注册、发现、路由、负载均衡、熔断降级、限流等。借助若依微服务框架可以让我

    2024年02月12日
    浏览(42)
  • SpringBoot+JWT实现单点登录解决方案

    一、什么是单点登录? 单点登录是一种统一认证和授权机制,指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的系统,不需要重新登录验证。 单点登录一般用于互相授信的系统,实现单一位置登录,其他信任的应用直接免登录的方式,在多个应用系统中,

    2024年02月12日
    浏览(45)
  • 实战:单点登录的两种实现方式,附源码

    最近工作有点忙,好久没更新文章了,正好这两天在整理 单点登陆 相关的文档,今天趁着小孩睡着了🤫,赶紧码一篇 实战文 交差。 单点登录( Single Sign-On , SSO )是一种身份验证服务,允许用户使用单个标识来登录多个应用程序或系统。如下图所示,用户只需要 用户名

    2024年02月08日
    浏览(53)
  • 二、springboot集成CAS客户端实现单点登录

    pom中引入依赖 yml中添加cas配置 读取CAS相关配置 cas配置类 单点登录接口demo 访问loingCas接口时,若未在CASserver登录,则会被拦截跳转到CAS的登陆页面,登陆成功后放行继续访问loginCas接口

    2024年02月15日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包