mirror of https://github.com/IoTcat/auxpi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
56 lines
1.4 KiB
// Copyright (c) 2019 aimerforreimu. All Rights Reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
// |
|
// GNU GENERAL PUBLIC LICENSE |
|
// Version 3, 29 June 2007 |
|
// |
|
// Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
|
// Everyone is permitted to copy and distribute verbatim copies |
|
// of this license document, but changing it is not allowed. |
|
// |
|
// repo: https://github.com/aimerforreimu/auxpi |
|
|
|
package middleware |
|
|
|
import ( |
|
"fmt" |
|
"time" |
|
|
|
"github.com/auxpi/auxpiAll" |
|
"github.com/auxpi/auxpiAll/e" |
|
"github.com/auxpi/utils" |
|
|
|
"github.com/astaxie/beego/context" |
|
) |
|
|
|
var JWT = func(ctx *context.Context) { |
|
var code int |
|
var data interface{} |
|
var token string |
|
|
|
code = e.SUCCESS |
|
token = ctx.Request.Header.Get("X-Token") |
|
fmt.Println("JWJWJWJWJWJTTTTTTTTTTTTTTTTTT") |
|
if token == "" { |
|
code = e.INVALID_PARAMS |
|
} else { |
|
claims, err := utils.ParseToken(token) |
|
if err != nil { |
|
code = e.ERROR_AUTH_CHECK_TOKEN_FAIL |
|
} else if time.Now().Unix() > claims.ExpiresAt { |
|
code = e.ERROR_AUTH_CHECK_TOKEN_TIMEOUT |
|
} |
|
} |
|
if code != e.SUCCESS { |
|
errorInfo := auxpi.RespJson{ |
|
Code: code, |
|
Msg: e.GetMsg(code), |
|
Data: data, |
|
} |
|
info, _ := errorInfo.MarshalJSON() |
|
ctx.Output.Header("Content-Type", "application/json; charset=UTF-8") |
|
ctx.ResponseWriter.Write(info) |
|
return |
|
} |
|
}
|
|
|