12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package middleware
- import (
- "gd_management_gateway/errors"
- "fmt"
- "gd_management_gateway/common.in/jsonrpc2"
- dsignal "gd_management_gateway/common.in/signal"
- "gd_management_gateway/common.in/task"
- "gd_management_gateway/common.in/utils"
- "github.com/astaxie/beego/context"
- )
- type (
- JwtRequest struct {
- Token string `json:"token" required:"true" in:"header"`
- Uid string `json:"uid" required:"true" in:"header"`
- }
- )
- func JwtAuth(ctx *context.Context) {
- var req JwtRequest
- getParamsTask := func() error {
- if dsignal.ExitRecieved == true {
- return jsonrpc2.NewJsonError(10003, "服务停止中")
- }
- req.Uid = ctx.Input.Header("uid")
- req.Token = ctx.Input.Header("token")
- if req.Uid == "" || req.Token == "" {
- return errors.ArgsError
- }
- return nil
- }
- handleTokenCheck := func() error {
- uid, _, err := utils.ParseToken(req.Token)
- if err != nil {
- return err
- }
- if fmt.Sprintf("%d", uid) != req.Uid {
- return errors.UserTokenillegality
- }
- return nil
- }
- // 执行以上定义的任务
- task.Do(&task.PanicRecover{
- Ctx: ctx,
- LogID: ""}, ctx,
- getParamsTask, handleTokenCheck,
- )
- }
|