## 技术方面 ### 打包指令 配置: ```yaml gfcli: build: name: "" arch: "amd64" # 配置CPU架构 system: "linux,darwin,windows" # 配置操作系统 mod: "" #GoModules编译模式,默认留空 cgo:0 # 是否允许调用C代码,0禁用1启用 packSrc: "manifest,resource" # 指定一起打包的静态资源路径 ``` 命令: gf build ### Bcrypt加密 ```go //加密: bcrypt.GenerateFromPassword([]byte("要加密的内容"),int 加密次数2^int次) //验证: err:=bcrypt.CompareHashAndPassword(hash,password) ``` ### JWT #### golang-jwt ```go //1.定义结构体 type MyClaims struct{ ID uint Username string jwt.RegisteredClaims } //2.签发 claims:=MyClaims{ .... RegisteredClaims: jwt.RegisteredClaims{ 设置token参数,如过期时间等 } } token:=jwt.NewWithClaims(jwt.SigningMethodHS256,claims) token =token.SignedString([]byte(密钥)) //3.验签 token,err:= jwt.ParseWithClaims(tokenString, &model.MyClaim{}, func(token *jwt.Token) (interface{}, error) { _, ok := token.Method.(*jwt.SigningMethodHMAC) //验证加密方式 if !ok { return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) } return []byte(密钥), nil }) if err!=nil {return nil,err} if claims,ok:=token.Claims.(*MyClaims);ok&&token.Valid{ return claims,nil } ``` #### gf-jwt gf-jwt是以中间件的形式管理token ```go //1.初始化中间件 var Auth:=&gfjwt.GFJWTMiddleware{ Realm:"name", Key:[]byte(密钥), Timeout:过期时间, MaxRefresh: token刷新窗口期 IdentityKey: "id" //payload中标识身份的key Authenticator:func(r *ghttp.Request)(interface{},error)//回调函数,处理登录验签逻辑 } //2.注册中间件 //3.从token中获取数据 _,data:=Auth.GetIdentity(g.RequestFromCtx(ctx)) userId:=gconv.Uint64(data(g.Map)["id"]) ``` ## 夺宝奇兵功能 ### 机构动向 #### --股票估值-- 显示股票当前或上一次收盘的基本信息 ### --当日资金-- 分析资金流入流出方向,列出了主力资金状况、主力吸筹有无、庄散对决情况 ### AI 预测大模型--股价预测 展示7项数据:现价、卖出价、买回价,预测高一高二、低一低二 展示K线图 功能亮点介绍