mirror of
https://github.com/portainer/portainer.git
synced 2025-07-21 06:19:41 +02:00
30 lines
531 B
Go
30 lines
531 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/dgrijalva/jwt-go"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type claims struct {
|
||
|
Username string `json:"username"`
|
||
|
jwt.StandardClaims
|
||
|
}
|
||
|
|
||
|
func (api *api) generateJWTToken(username string) (string, error) {
|
||
|
expireToken := time.Now().Add(time.Hour * 8).Unix()
|
||
|
claims := claims{
|
||
|
username,
|
||
|
jwt.StandardClaims{
|
||
|
ExpiresAt: expireToken,
|
||
|
},
|
||
|
}
|
||
|
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
|
||
|
|
||
|
signedToken, err := token.SignedString(api.secret)
|
||
|
if err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
|
||
|
return signedToken, nil
|
||
|
}
|