Open ahalf-yuan opened 2 years ago
1.使用postgres
用户登录安装在本机的数据库:
$ psql -U postgres
Password for user postgres: //提示输入用户密码
新建用户的数据库、登陆
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
https://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
2.常用
$ \conninfo:列出当前数据库和连接的信息。
$ \du:列出所有用户。
# 列出所有数据库
$ \l:列出所有数据库。
# 切换数据库
$ \c [database_name]
# 列出数据库所有表
$ \d
# 列出某一张表格的结构
$ \d [table_name]
# SQL命令的解释
$ \h:查看SQL命令的解释,比如 \h select。
$ \?:查看psql命令列表。
3.SQL语句
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;
概念:
JWT 格式:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIxIiwiZXhwIjoxNTQ3OTc0MDgyfQ.2Ye5_w1z3zpD4dSGdRp3s98ZipCNQqmsHRB9vioOx54
包含三部分:
其中,header 和 payload是base64格式,可以通过解码获得原始值。
(MAC 通过以下命令可以查看前两部分内容)
echo eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | base64 -D
签名部分,通过私钥(服务端)结合前两部分信息生成 - (这是一种 hash 方法,无法破解获得进行签名的密钥)
如何验证签名: 服务端 用 密钥+用户信息生成签名,跟JWT第三部分进行对比即可。
JWT 相较传统 cookie-session 优势
传统 cookie-session,服务端存储会话,给到客户端sessionID,客户端每次请求带上sessionID,服务端通过sessionID验证会话信息。 对于分布式结构,需要独立的用户服务处理登陆信息。
参考: