数字签名 简单来说是用来加密信息和防止信息在中途被人篡改
在JS实例里使用 Class 的静态方法
参考:https://stackoverflow.com/questions/43614131/js-call-static-method-from-class
1 | class StaticMethodCall { |
什么是哈希(hash)
哈希值通常用一个短的随机字母和数字组成的字符串来代表,是一组任意长度的输入信息通过哈希算法得到的“数据指纹”。
哈希值是一段数据唯一且极其紧凑的数值表示形式,如果通过哈希一段明文得到哈希值,如果更改明文中任何一个字母,随后得到的哈希值都将不同。
简单来说说 IaaS,PaaS,SaaS
IaaS,PaaS,SaaS 傻傻分不清楚。
我们来简单的描述一下这些服务是什么意思
IaaS:基础设施服务,Infrastructure-as-a-service
PaaS:平台服务,Platform-as-a-service
SaaS:软件服务,Software-as-a-service
有个很形象的 pizza 🍕 比喻
jsonwebtoken 退出或者修改密码注销token
一个简单的解决方法:
在你的 user 数据库里加上一列 tokenDate
User table | Data tyle |
---|---|
username | STRING |
password | STRING |
tokenDate | DATE (timestamp) |
每次生成 jsonwebtoken 的时候也把 tokenDate 打包进去。
tokenDate 的值会在每次 用户登入,退出或者修改密码的时候更新成最新的 timestamp。
就这样我们每次收到用户的 token 的时候查看 tokenDate 是否和我们数据库保存的一致,如果不一致说明这个token已经废除
Node + Typescript + Webpack 教程
Git Submodule 笔记
我们这有两个项目 main_project 和 child_project
添加
1 | cd main_project |
1 | $ git status |
在 .gitModule 内容1
2
3[submodule "child_project"]
path = child_project
url = git@github.com:tmirun/child_project.git
更新
如果我们的项目是这样的1
2main_project
|- child_project
每次我们更新 child_project 的时候 也需要在 main_proejct 更新的child project 所在的 commit
克隆含有子模块的项目
方法 1
在克隆父级模块的时候用 –recursive
1 | git clone http://github.com/chaconinc/MainProject --recursive |
方法 2
第一克隆父级模块1
2
3
4git clone http://github.com/chaconinc/MainProject main_project
cd main_project
git submodule init
git submodule update
删除
参考1
2
3
4
5
6git submodule deinit <asubmodule>
git rm <asubmodule>
# Note: asubmodule (no trailing slash)
# or, if you want to leave it in your working tree
git rm --cached <asubmodule>
rm -rf .git/modules/<asubmodule>