// Copyright (c) 2025 Nikolai Papin // // This file is part of Easywish // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See // the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package utils import ( "easywish/config" "time" "github.com/golang-jwt/jwt/v5" ) func GenerateTokens(username string) (accessToken, refreshToken string, err error) { cfg := config.GetConfig() accessClaims := jwt.MapClaims{ "username": username, "exp": time.Now().Add(time.Minute * time.Duration(cfg.JwtExpAccess)).Unix(), } accessToken, err = jwt.NewWithClaims(jwt.SigningMethodHS256, accessClaims).SignedString([]byte(cfg.JwtSecret)) refreshClaims := jwt.MapClaims{ "username": username, "exp": time.Now().Add(time.Hour * time.Duration(cfg.JwtExpRefresh)).Unix(), } refreshToken, err = jwt.NewWithClaims(jwt.SigningMethodHS256, refreshClaims).SignedString([]byte(cfg.JwtSecret)) return }