Skip to content
Snippets Groups Projects
Commit 21596d89 authored by Martin Schmollinger's avatar Martin Schmollinger
Browse files

Added dummy jwt generator for local execustion

parent 43c471ca
No related branches found
No related tags found
No related merge requests found
go 1.24.1 go 1.24.1
use ./src/myaktion use ./src/myaktion
use ./src/genjwt
module gitlab.reutlingen-university.de/go-exercises/myaktion-go-ss25/src/genjwt
go 1.24.1
require github.com/golang-jwt/jwt/v5 v5.2.2
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
package main
import (
"fmt"
"os"
"time"
"github.com/golang-jwt/jwt/v5"
)
var secretKey = []byte("myaktion-go-secret-key")
func createToken(username string) (string, error) {
claims := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"sub": username,
"iss": "myaktion-go",
"aud": "organizer",
"exp": time.Now().Add(time.Hour).Unix(),
"iat": time.Now().Unix(),
})
fmt.Printf("Token claims added: %+v\n", claims)
tokenString, err := claims.SignedString(secretKey)
if err != nil {
return "", err
}
return tokenString, nil
}
func readUserFromToken(tokenString string) (string, error) {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
return secretKey, nil
})
if err != nil {
return "", err
} else {
if username, err := token.Claims.GetSubject(); err != nil {
return "", err
} else {
return username, nil
}
}
}
func isValid(tokenString string) (bool, error) {
_, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
return secretKey, nil
})
if err != nil {
return false, err
}
return true, nil
}
func main() {
if len(os.Args) >= 2 {
username := os.Args[1]
tokenString, err := createToken(username)
if err != nil {
fmt.Printf("Unable to create token: %+v\n", err)
} else {
fmt.Printf("%+v\n", tokenString)
//user, _ := readUserFromToken(tokenString)
//fmt.Printf("found user in token: %+v\n", user)
}
} else {
fmt.Println("Please pass a username as command-line argument")
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment