30 lines
664 B
Go
30 lines
664 B
Go
package middleware
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"nCovTrack-Backend/utils"
|
|
"net/http"
|
|
)
|
|
|
|
const UNAUTH_MSG = "unauthorized"
|
|
|
|
func Auth() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
oldToken := c.Request.Header["Token"]
|
|
c.Writer.Header().Set("X-Token", "")
|
|
if len(oldToken) != 1 || oldToken[0] == "" {
|
|
utils.Err(c, http.StatusUnauthorized, http.StatusUnauthorized, UNAUTH_MSG)
|
|
c.Abort()
|
|
return
|
|
}
|
|
renewToken := utils.RenewToken(oldToken[0])
|
|
if renewToken == "" {
|
|
utils.Err(c, http.StatusUnauthorized, http.StatusUnauthorized, UNAUTH_MSG)
|
|
c.Abort()
|
|
return
|
|
}
|
|
c.Writer.Header().Set("X-Token", renewToken)
|
|
c.Next()
|
|
}
|
|
}
|