add working signup + login
This commit is contained in:
parent
bc85b7c340
commit
d8cb8c8fa8
27 changed files with 600 additions and 39 deletions
45
internal/database/token.go
Normal file
45
internal/database/token.go
Normal file
|
@ -0,0 +1,45 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/golang-jwt/jwt/v4"
|
||||
"github.com/oklog/ulid/v2"
|
||||
)
|
||||
|
||||
const InternalApplicationName = "mercury_internal"
|
||||
const TokenCookieName = "mercury_token"
|
||||
|
||||
type Application struct {
|
||||
ID ulid.ULID
|
||||
Name string
|
||||
}
|
||||
|
||||
type Token struct {
|
||||
ID ulid.ULID
|
||||
AppID ulid.ULID
|
||||
UserID ulid.ULID
|
||||
Scopes []string
|
||||
Expires time.Time
|
||||
}
|
||||
|
||||
func (t Token) ToClaims() TokenClaims {
|
||||
createdAt := ulid.Time(t.ID.Time())
|
||||
|
||||
return TokenClaims{
|
||||
TokenID: t.ID,
|
||||
UserID: t.UserID,
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
Issuer: "mercury",
|
||||
ExpiresAt: jwt.NewNumericDate(t.Expires),
|
||||
IssuedAt: jwt.NewNumericDate(createdAt),
|
||||
NotBefore: jwt.NewNumericDate(createdAt),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type TokenClaims struct {
|
||||
TokenID ulid.ULID `json:"jti"`
|
||||
UserID ulid.ULID `json:"sub"`
|
||||
jwt.RegisteredClaims
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue