1、视频讲解的参看博客

这应该是第一个简单的分布式系统soa入门的基础,视频中对sao面向服务编程讲解的很透彻,第redis缓存讲解的也比较清楚,讲解了sso单点登录使用token的方式,还有cas实现单点登录的方式,详细讲解了spring整合redis框架等相当的经典

不清楚的好好把视频仔细学习。

视频资料下载地址

链接:https://pan.baidu.com/s/1_4X_4Suvhq6wSfRVy6zsiQ 密码:dfod

登录的业务逻辑
{
http:是短连接.

服务器如何判断当前用户是否登录?

// 1. 如果是即时通信类:长连接.
// 如何保证服务器跟客户端保持长连接状态?

// "心跳包" 用来检测用户是否在线!用来做长连接!

http:短连接使用token 机制来验证用户安全性

// token 值: 登录令牌! 用来判断当前用户的登录状态!

// token 值特点: 是一个字符串/大整数,只需要保证唯一性.是服务器根据用户的信息(账号/密码/身份认证机制(电话号/身份证号/支付宝账号/银行卡信息)...)来生成的用于标识用户身份的值!

// token 值获取:

// 当用户首次登录成功之后, 服务器端就会生成一个 token 值.

1.会在服务器保存token值(保存在数据库中)

2.将这个token值返回给客户端.

// 客户端拿到 token 值之后,一般保存在两个位置 :

1. 将 token 保存在 cookie 中;

2.将 token 保存在沙盒中,作为一个公共参数传递.

// 公共参数: 每一个网络请求都需要的参数! 一般公共参数有很多都是"可选"参数!,公共参数附带的越多,越利于后台监测用户,数据挖掘会使用到监测到的数据.

// 以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器.

// 服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做对比!
// 如果两个 token 值相同 :说明用户登录成功过!当前用户处于登录状态!
// 如果没有这个 token 值, 没有登录成功.
// 如果 token 值不同: 说明原来的登录信息已经失效,让用户重新登录.

// token 值失效问题: 1. token 值有失效时间!
{
token的有效时间:
{
1. 如果 app 是新闻类/游戏类/聊天类等需要长时间用户粘性的. 一般可以设置1年的有效时间!

2. 如果 app 是 支付类/银行类的. 一般token只得有效时间比较短: 15分钟左右!
}
}

// token 值失效问题: 2. token 值用来做设备唯一性登录判断!
{
每次登录之后,无论用户密码是否改变,只要调用登录接口并且登录成功,都会在服务器生成新的token值,原来的token值就会失效!

典型的 app : 打车软件类
}

拓展: 多态设备同时登录. 设备唯一性登录!

{

如果允许多台设备同时登录 ,并且可以设置最大的登录数量的时候。比如说QQ:允许在电脑客户端登录,QQ手机端登录, QQ网页端登录

如果超出这三个端 想要再另外 一个相同的端登录,需要使对应的端的token失效,来保证一个端 一个账号只登录一次。

可以设置多个token 根据登录端不同 ,来检测token 是否过期。 根据登录的数量 可以判断最大支持多少个设备同时登录

}

}

分布式系统框架Spring+Redis+SSO视频课程的更多相关文章

  1. Spring Boot 实战与原理分析视频课程

    Spring Boot 实战与原理分析视频课程 链接:https://pan.baidu.com/share/init?surl=PeykcoeqZtd1d9lN9V_F-A 提取码: 关注公众号[G ...

  2. Spring Boot 学习视频

    1. Spring Boot  项目实战 ----- 技术栈博客企业前后端 链接:https://pan.baidu.com/s/1hueViq4 密码:4ma8 2.Spring Boot  项目实 ...

  3. IT视频课程集

    马哥Linux培训视频课程:http://pan.baidu.com/s/1pJwk7dp Oracle.大数据系列课程:http://pan.baidu.com/s/1bnng3yZ 天善智能BI培 ...

  4. IT视频课程集(包含各类Oracle、DB2、Linux、Mysql、Nosql、Hadoop、BI、云计算、编程开发、网络、大数据、虚拟化

    马哥Linux培训视频课程:http://pan.baidu.com/s/1pJwk7dp Oracle.大数据系列课程:http://pan.baidu.com/s/1bnng3yZ 天善智能BI培 ...

  5. 传智 Python基础班+就业班+课件 【最新完整无加密视频课程】

    点击了解更多Python课程>>> 传智 Python基础班+就业班+课件 [最新完整无加密视频课程] 直接课程目录 python基础 linux操作系统基础) 1-Linux以及命 ...

  6. DDD建模案例----“视频课程”场景

    接触领域驱动设计DDD有一年多的时间了,中间看过不少书,参与过一些讨论(ENode QQ群).目前对DDD的认知还停留在理论阶段,所以对领域建模非常感兴趣,这里说的建模是指以DDD的思想为指导再加上D ...

  7. redis之(二十一)redis之深入理解Spring Redis的使用

    关于spring redis框架的使用,网上的例子很多很多.但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么 ...

  8. 深入理解Spring Redis的使用 (一)、Spring Redis基本使用

    关于spring redis框架的使用,网上的例子很多很多.但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么 ...

  9. 分布式缓存技术redis学习—— 深入理解Spring Redis的使用

    关于spring redis框架的使用,网上的例子很多很多.但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么 ...

随机推荐

  1. String类的内存解析

    package com.aff.equals; public class TestString { public static void main(String[] args) { String st ...

  2. 以太坊智能合约开发框架Truffle

    前言 部署智能合约有多种方式,命令行的浏览器的渠道都有,但往往跟我们程序员的风格不太相符,因为我们习惯了在IDE里写了代码然后打包运行看效果. 虽然现在IDE中已经存在了Solidity插件,可以编写 ...

  3. STM32读取Guidance数据——Guidance SDK

    更新记录:2019/11/14    更新STM32(F407VET6)读取Guidance数据 Github地址. 背景:想要将祖传的Guidance用于DJI A3/新固件的N3飞控.DJI已经停 ...

  4. jQuery-简单理解

    1.概念 jQuery是js的一个类库,主要封装的是js中DOM操作部分,使用和原生js一样 2.代码展示 HTML部分 封装原理 test测试 JS部分 //声明对象 var bjsxt = {}; ...

  5. Beta冲刺——测试随笔

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.测试工作安排 项目 ...

  6. Java实现 LeetCode 面试题 01.07. 旋转矩阵(按照xy轴转+翻转)

    面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 mat ...

  7. Java实现 蓝桥杯VIP 算法提高 林丹大战李宗伟

    问题描述 我们用0表示林丹,1表示李宗伟. 输入数据中每行会给出一个0或者1,表示对应选手得1分. 当一方得分达到21分时,只要该方与对方分差超过1分,该方即胜出. 你需要输出最后获胜选手的代号. 输 ...

  8. Java实现 LeetCode 116 填充每个节点的下一个右侧节点指针

    116. 填充每个节点的下一个右侧节点指针 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left ...

  9. 第四届蓝桥杯C++B组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的 ...

  10. Java实现硬币收集问题

    1 问题描述 在n*m格木板中放有一些硬币,每格的硬币数目最多为一个,在木板左上方的一个机器人需要收集尽可能多的硬币并把它们带到右下方的单元格.每一步,机器人可以从当前的位置向右移动一格或向下移动一格 ...