jwt_helpers.go 708 B

1234567891011121314151617181920212223242526272829303132
  1. package jwt_helpers
  2. import (
  3. "github.com/gofiber/fiber/v2"
  4. "github.com/golang-jwt/jwt/v4"
  5. "notabug.org/alimiracle/my-website-api/models"
  6. "time"
  7. )
  8. func Create_token(user models.User) (string, error) {
  9. // Create the Claims
  10. claims := jwt.MapClaims{
  11. "name": user.Name,
  12. "admin": user.Is_admin,
  13. "exp": time.Now().Add(time.Hour * 72).Unix(),
  14. }
  15. // Create token
  16. token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
  17. // Generate encoded token
  18. t, err := token.SignedString([]byte("secret"))
  19. return t, err
  20. }
  21. func IS_user_admin(c *fiber.Ctx) bool {
  22. jwt_user := c.Locals("user").(*jwt.Token)
  23. claims := jwt_user.Claims.(jwt.MapClaims)
  24. is_admin := claims["admin"].(bool)
  25. return is_admin
  26. }