吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 418|回复: 4
收起左侧

[学习记录] go开发高并发高性能跨平台软件的记录-第二弹

[复制链接]
prettyafei 发表于 2024-12-25 20:31

第二弹

在一个帖子里好麻烦,就单独发了

事情比较多,一起更新吧

老规矩,直接上代码。语言天赋太差

注意:只会更新基础代码,逻辑需要自己完善

今天开始写前端了,后续更新应该会晚两天

//添加中间件 拦截请求并作出判断

func AuthMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        // 这里可以添加具体的权限校验逻辑,例如从请求头获取token并验证等
        token := c.GetHeader("Authorization")
        if token == "" {
            // c.JSON(http.StatusUnauthorized, gin.H{"error": "未提供授权令牌"})
            // c.Abort()
            // return
            c.Next()
        }
        // 假设这里进行一些简单验证,实际要根据真实逻辑完善
        if token != "valid_token" {
            //c.JSON(http.StatusForbidden, gin.H{"error": "无效的授权令牌"})
            //c.Abort()
            //return
            c.Next()

        }
        c.Next()
    }
}
//路由入口没有什么更新

func SetupRouter() *gin.Engine {
    router := gin.Default()
    api := router.Group("/api/v1")
    SetupUserRoutes(api)
    return router
}
//路由文件把auth加进去就可以了
func SetupUserRoutes(api *gin.RouterGroup) {
    users := api.Group("/users")
    users.Use(auth.AuthMiddleware())
    {
        // 创建用户
        users.POST("", controllers.CreateUser)
    }
}
//最终main文件长这样。
package main

import (
    "github.com/gin-contrib/cors"
    "server/config"
    "server/routes"
    "server/utils"
)

func main() {
    config.ConnectDB()
    router := routes.SetupRouter()
    router.Use(cors.New(cors.Config{
        AllowOrigins: []string{"*"}, // 替换为前端实际的域名,支持多个,["*"] 表示允许所有源跨域
        AllowMethods: []string{"GET", "POST"},
        AllowHeaders: []string{"Origin", "Content-Type", "Authorization"},
    }))
    _, _, err := utils.GenerateKeyPair()
    if err != nil {
        // 处理错误
        panic(err)
    }
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wintop 发表于 2024-12-26 08:38
Go 唯一不好的地方是wall 太高了。一些包都下不下来
不负韶华 发表于 2024-12-26 09:23
这个东西主要 是思想,没必要跟着go这种教程学一遍,不全面,所有的三高问题在java的体系里  书多到数不完,这个东西为什么教程很少,因为默认都是从别的语言转过来的,都有成熟的解决方案了,比如c,java,go语法太简单了,其他语言转到go,两天时间就能轻松上手。建议把时间用在刀刃上
houdongen 发表于 2024-12-26 09:56
 楼主| prettyafei 发表于 2024-12-27 08:36
不负韶华 发表于 2024-12-26 09:23
这个东西主要 是思想,没必要跟着go这种教程学一遍,不全面,所有的三高问题在java的体系里  书多到数不完 ...

这是教程?
这是记录!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-2 19:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表