上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 为什么要 JWT 鉴权 没有鉴权的问题 假设 /api/user/info 返回用户敏感信息: GET /api/user/info?uid=1 我们根据上篇Login实现的测试截图便可以看到,登录成功后服务器会以明文会返回大量用户信息 ❌ 任何人都能查任意用户的信息 ❌ 恶意用户可以 遍历 uid 阅读全文
posted @ 2026-04-17 17:35 Chuan81 阅读(49) 评论(0) 推荐(0)
摘要: 注册API顺利完工,与之相对应的便是登录API 一. 新增DTO internal/api/handlers/dto/user.go // LoginRequest 定义了用户登录请求的DTO结构体,包含用户名和密码字段 type LoginRequest struct { Username str 阅读全文
posted @ 2026-04-17 17:32 Chuan81 阅读(24) 评论(0) 推荐(0)
摘要: 我们已经把用户表创建完毕,接下来便是用户注册与登录的部分 go get -u golang.org/x/crypto/bcrypt加入bcrypt包 一. 统一相应封装 pkg/response/response.go package response import ( "github.com/gi 阅读全文
posted @ 2026-04-17 17:32 Chuan81 阅读(15) 评论(0) 推荐(0)
摘要: 为了实现数据库连接和用户表的设计,我们将引入 Go 生态中最强大的 ORM 框架 GORM。通过 GORM,我们可以直接用 Go 的结构体(Struct)来定义数据库表,并在程序启动时自动创建表结构,省去了手写 SQL 建表语句的麻烦。 一. 安装 GORM 及其 MySQL 驱动 首先确保MySQ 阅读全文
posted @ 2026-04-17 17:29 Chuan81 阅读(18) 评论(0) 推荐(0)
摘要: 在 Go 语言生态中,引入和解析 YAML 配置文件最主流、最好用的库是 spf13/viper。它不仅支持 YAML,还支持 JSON、TOML 等多种格式,并且能很方便地把配置映射到 Go 的结构体(Struct)中,提供给全项目使用。 一. 配置Viper依赖包 打开终端,在项目根目录下(即  阅读全文
posted @ 2026-04-17 17:25 Chuan81 阅读(30) 评论(0) 推荐(0)
摘要: 一. Go项目模块的初始化 因为这是一个 Go 项目,我们需要开启并初始化 Go Modules,这是 Go 管理依赖的核心机制。请将 your_username 替换为你的 GitHub 或 Gitee 用户名: bash go mod init github.com/your_username/ 阅读全文
posted @ 2026-04-17 17:24 Chuan81 阅读(29) 评论(0) 推荐(0)
摘要: 🚀 高并发秒杀商城后端系统 (Secgo-Mall) 📖 1. 项目简介与目标 项目作者:Chuan81 项目链接:https://github.com/Chuan81/Secgo-Mall 本项目是一个基于 Go 语言构建的高并发秒杀商城后端系统。系统的核心目标是解决秒杀场景下的两大核心痛点: 阅读全文
posted @ 2026-04-17 17:24 Chuan81 阅读(57) 评论(0) 推荐(0)
摘要: NewServer func NewServer(opt ...ServerOption) *Server 定义 opt: 各种服务端配置选项(ServerOption) grpc.NewServer 是 gRPC-Go 开发中用于创建服务端实例的核心入口。它返回一个 *grpc.Server 对象 阅读全文
posted @ 2026-04-03 20:33 Chuan81 阅读(23) 评论(0) 推荐(0)
摘要: NewClient func NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) 定义 target: 连接的目标地址。格式通常为 scheme://authority/endpoint。例如 loca 阅读全文
posted @ 2026-04-03 20:18 Chuan81 阅读(36) 评论(0) 推荐(0)
摘要: P1095 [NOIP 2007 普及组] 守望者的逃离 点击查看代码 #include<bits/stdc++.h> using namespace std; int main () { int m, s, t; cin >> m >> s >> t; vector<int> dp(t + 1); 阅读全文
posted @ 2025-05-31 12:13 Chuan81 阅读(27) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 9 下一页