分类: 学习笔记

42 篇文章

Flutter: 沉浸式底栏的配置
在main函数加入: import 'package:flutter/services.dart'; void main() { runApp(MyApp()); // 沉浸式状态栏 SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); SystemChrome.setSyste…
Flutter: 构建/编译相关笔记
降低构建包体积 针对目标平台编译 flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi 修改程序图标 1. 在pubspec.yaml文件中引入依赖包 dev_dependencies: flutter_launcher_i…
使用ISO 8601标准,优雅的通过GET接口在URL中传递时间
记个笔记:在URL中传递时间的最佳实践是采用ISO 8601标准格式 ISO 8601的基本格式 长这样 YYYY-MM-DDTHH:MM:SSZ 其中 YYYY 是四位数的年份 MM 是两位数的月份 DD 是两位数的日期 T 是日期和时间的分隔符 HH 是两位数的小时(24小时制) MM 是两位数的分钟 SS 是两位数的秒 Z 表示UTC时间(如…
Gin+Gorm: 86行代码:数据库自动迁移,以及一个通用分页、全部、数据量查询API
短短几十行,同时实现: 数据库自动迁移/自动建表 启动一个HTTP接口服务 从URL地址接收分页参数 完整查询 分页查询 表数据量查询 并且极易拓展新的表进行复用,后期拓展新的表查询仅仅需要加个结构体和仓库定义即可。 直接上示例 package main import ( "net/http" "strconv" "github.com/gin-g…
Gin+原生JS,实现一套AES+RSA混合加密数据传输流程
从前端,到后端,除了Gin框架本身,完全不依赖第三方库,极简实现,无比丝滑。 流程梳理 客户端生成一个AES密钥(建议存Cookie里) 服务端生成一对RSA密钥(private.pem+public.pem) 服务端开启一个接口,接收任意请求方法都行,将RSA公钥以Set-Cookie标头直接塞到客户端浏览器Cookie里面(记得以base64传…
为访问Token、刷新Token、30天内免登录功能之间的关系做个梳理
在实现“30天内免登录”功能时,应该设置的是刷新令牌(Refresh Token)的有效期较长,而不是登录令牌(通常是指访问令牌 Access Token)的有效期。 刷新令牌(Refresh Token) 刷新令牌通常具有较长的有效期,用于在访问令牌过期后获取新的访问令牌,而无需用户重新输入凭据。 关于“30天内免登录”的这个功能呢,意味着刷新令…
Redis技巧:将键名定义为常量进行统一管理
项目开发中只需定义一个常量映射表,后期需要更改键名直接通过映射表统一修改,从而无需每个文件去一一修改,降低代码出错率的同时确保可维护性。 Go示例 // Resdis键名映射表 package cache const ( UserNameKey = "user:" UserOnlineKey = "user:online:" EmailCaptch…
尝试独自设计一套注册/登录/邮件验证/找回密码流程
除了登录接口以外,其他接口都需要邮件验证 注意事项 一定要设置好频繁请求限制中间件,防止验证码爆破。 注册 验证码邮件发送接口-注册 请求方法:post,请求参数:email 后端检查数据库用户表是否已存在用户email,如已存在则拒绝注册,如未存在则生成6位数随机数字作为验证码为后续发送邮件先做准备 将验证码存入redis,设置有效期(redis…