JWT 跨域认证解决方案

介绍 全称 JSON Web Token,分为 Header、Payload、Signature 三个部分,应用中,服务端生成一个 JSON 格式的对象,经过加密后生成 Header.Payload.Signature 这样以点分割的字符串,返回给客户端,之后客户端使用这个字符串作为身份凭证与服务器交互。 JWT 可以分布式生成,将用户非核心的信息存入 JWT 中,使服务端不需要单独的维护用户登录

- 阅读全文 -

MySQL学习 - 子查询

子查询 将一个查询语句嵌套在查询语句里的一个查询语句。被嵌套在内的叫子查询(内查询)、外面的叫主查询(外查询)。 规范 子查询必须写在括号内; 子查询为了可读性,一般写在操作符的右边; 子查询不支持 GROUP BY 子句和 LIMIT 子句; 分类 可分为两类 单行子查询和多行子查询; 单行子查询的子查询(内查询)返回一条查询结果,多行子查询返回多条查询结果 相关子查询和非相关子查询

- 阅读全文 -

Go 中间件 - validator 校验器

介绍 Validator 是一个 Go 的第三方库,用于对数据进行校验,返回一个 validator.ValidationErrors error 的切片,在 Tag 中配置各自字段的约束进行校验。 依赖 # 最基础的依赖 go get -u github.com/go-playground/validator/v10 # 国际化 go get -u github.com/go-playgro

- 阅读全文 -

分布式 ID 生成器

分布式 ID 不同机器生成的 ID 全局唯一,且生成和处理效率高。 常用 UUID 雪花算法 UUID 128 位二进制组成,表示成 8-4-4-4-12 形式的16进制字符,有 5 个版本 基本形式如下: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx M 表示版本,1-5 N表示变体,8-b 版本 V1 时间戳 + MAC 地址 一台机子跑2个进程可能会出

- 阅读全文 -

GORM - CRUD 接口(入门篇)

使用 MySQL 进行学习。 1. 准备 下载依赖 go get -u gorm.io/gorm go get -u gorm.io/driver/mysql 约定 使用 ID 作为主键,结构体名的复数(蛇形复数)作为表名(比如,User 表名为 users),字段名使用 蛇形 作为表名(比如,RegTime 字段名为 reg_time),使用 CreatedAt、UpdatedAt 字段追踪创建

- 阅读全文 -

MySQL学习 - 聚合函数

聚合函数 作用于一组函数,只返回一个值。 常见的聚合函数 AVG、SUM 只适合数值类型的字段 SELECT AVG(salary),SUM(salary),SUM(last_name) FROM employees; +-------------+-------------+----------------+ | AVG(salary) | SUM(salary) | SUM(last_name

- 阅读全文 -