不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • Python

  • GO

  • Java

  • 业务问题

  • 关键技术

  • 项目常识

    • 01.DDD领域驱动设计
    • 02.Redis_JWT_三方登录
      • 01.Redis单点登录
      • 02.JWT单点登录
      • 03.三方登录
    • 03.Restful风格
    • 04.三方支付
    • 21.后端场景题Part1
    • 22.后端场景题Part2
  • 计算机基础

  • 区块链

  • 常识
  • 项目常识
xiaonaiqiang
2021-02-09
目录

02.RedisJWT三方登录

# 01.Redis单点登录

使用Redis实现分布式部署单点登录(单点登录第一种方法:redis分布式存储解决方案)

因为这个项目是一个分布式部署的项目,而且我们采用的是nginx负载均衡的策略,导致了每一个服务器都需要开辟一个空间来进行用户信息的维护,消耗了大量的资源,所以,我当时使用到了Redis来作为维护用户信息的空间,将用户登录的信息存入Redis中,并且在存入时设置key的过期时间,所有的服务器共用一个Redis,每次进行操作时只需要去Redis中去判断这个用户是否存在,存在的话就说明这个用户现在是登录状态,不存在就说明这个用户没有登录,或者登录已经失效,让用户进行重新登录。

  • 为什么会存在单点登录的问题
    • session默认是存储在当前服务器的内存中,如果是集群,那么只有登录那台机器的内存中才有这个session
    • 比如说我在A机器登录,B机器是没有这个session存在的,所以需要重新验证
  • 如何解决这个单点登录问题
    • 不管在那一台web服务器登录,都会把token值存放到我们的一个集中管理的redis服务器中
    • 但客户端携带token验证的时候,会先从redis中获取,就实现单点登录
  • 现实举例
    • 比如你写的一个tornado项目,分别部署到A,B两台机器上
    • 如果直接使用session,那么如果在A机器登录,token只会在A服务器的内存
    • 因为请求会封不到A,b连个机器,如果这个请求到了B机器,B的内存中没有就会让重新登录
    • 所以登录A机器的时候我们应该把token值写入到redis中,A/B机器登录,都从redis中获取token进行校验

# 02.JWT单点登录

基于JWT技术及RSA非对称加密实现真正无状态的单点登录(单点等第二种方法:JWT)

1582080198139

# 03.三方登录

用户登录对接QQ、微信、微博等三方登录

上次更新: 2025/2/19 16:42:39
01.DDD领域驱动设计
03.Restful风格

← 01.DDD领域驱动设计 03.Restful风格→

最近更新
01
05.快递Agent智能体
06-04
02
200.AI Agent核心概念
06-04
03
105.Agent智能体梳理
06-04
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式