[TOC]
记录过去的一周
看到的开源项目
1.NodeJS 10.0发布
nodejs的大版本发布算是在开源软件界迭代非常快,新的特性更新非常之快,相对应学习成本也相应提高
2.将草图转为html -- ailab
Microsoft(微软)用AI的技术去体验,学习的编码将草图直接转为相对好看的html 机器自动编程很多年前就开始有报道,通过AI学习可能会来的更快
3.M3U8-Downloader
通过FFmpeg来实现下载
有趣的文章
1.开源的车牌识别系统打败了目前最先进的商业软件
来自巴西阿雷格里港大学的学者发表于ECCV2018的论文《License Plate Detection and Recognition in Unconstrained Scenarios》,给出了一整套完整的车牌识别系统设计,着眼于解决在非限定场景有挑战的车牌识别应用,其性能优于目前主流的商业系统,代码已经开源,非常值得参考。
- 工程主页: http://www.inf.ufrgs.br/~crjung/alpr-datasets/ https://github.com/sergiomsilva/alpr-unconstrained
新发现
1.Apache Cordova
apache也开源了将HTML, CSS & JS进行移动App开发,将一份代码在多端运行 JavaScript访问原生的设备功能,如摄像头、麦克风,看上去还不错
2.leetcode出中文地址了
leetcode(领扣)是一个专门刷题的地方,各种算法基本都有相应的题目,没事可以刷刷
重温了
1.事务的特性
原子性
事务中的处有操作当作一个整体,要么都成功要么都失败
一致性
只有合法的数据才能写入数据库
隔离性
允许多个用户对数据进行操作,但互不影响
持续性
事务结束后,数据必须得到保存,不应放在内存等地方
2.单点登录
第一种:多个网站通过iframe进行包含
只要用户登录过其中一个,通过iframe就可以拿到session,将这个session传给当前访问网站 缺点:通过iframe进行嵌入,子系统多的情况下,相当于每访问一次就发送了多个并发,对服务器的压力成倍增加
第二种:通过cookie写入同一域名
由于浏览器的同域策略,将多个网址的cookie统一设置为 如:‘baidu.com’ ,其它子系统都通过这个cookie拿到相应的凭证 缺点: 不同的webserver 对cookie的识别不一样,不同的语言对cookie的识别与处理不一致,甚至不同的版本对cookie都不一样
第三种:SSO验证
所有的系统用户都通过一个验证服务器来进行登入操作,验证服务器通过生成令牌的方式进行发放到各个子系统,各个子系统通过令版来识别用户是否登录
![](https://raw.githubusercontent.com/ss7247/test_img/master/797930-20161203152650974-276822362.png)
下面对上图简要描述
1. 用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
2. sso认证中心发现用户未登录,将用户引导至登录页面
用户输入用户名密码提交登录申请
3. sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
4. sso认证中心带着令牌跳转会最初的请求地址(系统1)
系统1拿到令牌,去sso认证中心校验令牌是否有效
5. sso认证中心校验令牌,返回有效,注册系统1
6. 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
7. 用户访问系统2的受保护资源
8. 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
9. sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
10. 系统2拿到令牌,去sso认证中心校验令牌是否有效
11. sso认证中心校验令牌,返回有效,注册系统2
12. 系统2使用该令牌创建与用户的局部会话,返回受保护资源