Add working JWT tokens
This commit is contained in:
parent
1f8393a985
commit
c34f789567
2 changed files with 12 additions and 4 deletions
|
@ -9,4 +9,10 @@ with(out) blazingly fast cloud-native web3 memory-safe blockchain reactive AI
|
||||||
This should be done by **October 17th 2024**. Or, at the very least,
|
This should be done by **October 17th 2024**. Or, at the very least,
|
||||||
in a state that proves I am competent Go developer.
|
in a state that proves I am competent Go developer.
|
||||||
|
|
||||||
Note: **JSON** is used for storage at proof-of-concept stage for ease of use
|
Note: **JSON** is used for storage at proof-of-concept stage for ease of use
|
||||||
|
|
||||||
|
## Current functionality
|
||||||
|
|
||||||
|
* `POST /register` - register a user with Basic Auth
|
||||||
|
* `POST /login` - get a JWT token by Basic Auth
|
||||||
|
* `GET /public-key` - get PEM-encoded public HS256 key
|
8
jwt.go
8
jwt.go
|
@ -10,6 +10,7 @@ import (
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/golang-jwt/jwt/v5"
|
"github.com/golang-jwt/jwt/v5"
|
||||||
)
|
)
|
||||||
|
@ -18,7 +19,6 @@ var KeyFile = "key"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
key *ecdsa.PrivateKey
|
key *ecdsa.PrivateKey
|
||||||
// t *jwt.Token
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// LoadKey attempts to load a private key from KeyFile.
|
// LoadKey attempts to load a private key from KeyFile.
|
||||||
|
@ -76,8 +76,10 @@ func CreateJWT(usr User) (string, error) {
|
||||||
t := jwt.NewWithClaims(jwt.SigningMethodES256,
|
t := jwt.NewWithClaims(jwt.SigningMethodES256,
|
||||||
jwt.MapClaims{
|
jwt.MapClaims{
|
||||||
"iss": "pye",
|
"iss": "pye",
|
||||||
"sub": "john",
|
"uid": usr.Uuid,
|
||||||
"foo": 2,
|
"sub": usr.Email,
|
||||||
|
"iat": time.Now(),
|
||||||
|
"exp": time.Now().Add(time.Hour * 24 * 7),
|
||||||
})
|
})
|
||||||
s, err := t.SignedString(key)
|
s, err := t.SignedString(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue