diff --git a/auth/jwt/claims.go b/auth/jwt/claims.go index 4d4e285..b43b1a1 100644 --- a/auth/jwt/claims.go +++ b/auth/jwt/claims.go @@ -3,7 +3,7 @@ package jwt import ( "errors" - "github.com/go-chi/jwtauth" + "github.com/dgrijalva/jwt-go" ) // AppClaims represent the claims parsed from JWT access token. @@ -14,20 +14,20 @@ type AppClaims struct { } // ParseClaims parses JWT claims into AppClaims. -func (c *AppClaims) ParseClaims(claims jwtauth.Claims) error { - id, ok := claims.Get("id") +func (c *AppClaims) ParseClaims(claims jwt.MapClaims) error { + id, ok := claims["id"] if !ok { return errors.New("could not parse claim id") } c.ID = int(id.(float64)) - sub, ok := claims.Get("sub") + sub, ok := claims["sub"] if !ok { return errors.New("could not parse claim sub") } c.Sub = sub.(string) - rl, ok := claims.Get("roles") + rl, ok := claims["roles"] if !ok { return errors.New("could not parse claims roles") } @@ -49,8 +49,8 @@ type RefreshClaims struct { } // ParseClaims parses the JWT claims into RefreshClaims. -func (c *RefreshClaims) ParseClaims(claims jwtauth.Claims) error { - token, ok := claims.Get("token") +func (c *RefreshClaims) ParseClaims(claims jwt.MapClaims) error { + token, ok := claims["token"] if !ok { return errors.New("could not parse claim token") } diff --git a/auth/jwt/token.go b/auth/jwt/token.go index 48aed23..b3f2ba8 100644 --- a/auth/jwt/token.go +++ b/auth/jwt/token.go @@ -3,7 +3,7 @@ package jwt import ( "time" - "github.com/go-chi/jwtauth" + "github.com/dgrijalva/jwt-go" "github.com/go-pg/pg/orm" ) @@ -37,8 +37,8 @@ func (t *Token) BeforeUpdate(db orm.DB) error { } // Claims returns the token claims to be signed -func (t *Token) Claims() jwtauth.Claims { - return jwtauth.Claims{ +func (t *Token) Claims() jwt.MapClaims { + return jwt.MapClaims{ "id": t.ID, "token": t.Token, } diff --git a/auth/jwt/tokenauth.go b/auth/jwt/tokenauth.go index 2d2d589..6dc8514 100644 --- a/auth/jwt/tokenauth.go +++ b/auth/jwt/tokenauth.go @@ -6,6 +6,7 @@ import ( "time" "github.com/go-chi/jwtauth" + "github.com/dgrijalva/jwt-go" "github.com/spf13/viper" ) @@ -38,7 +39,7 @@ func (a *TokenAuth) Verifier() func(http.Handler) http.Handler { } // GenTokenPair returns both an access token and a refresh token. -func (a *TokenAuth) GenTokenPair(ca jwtauth.Claims, cr jwtauth.Claims) (string, string, error) { +func (a *TokenAuth) GenTokenPair(ca jwt.MapClaims, cr jwt.MapClaims) (string, string, error) { access, err := a.CreateJWT(ca) if err != nil { return "", "", err @@ -51,17 +52,17 @@ func (a *TokenAuth) GenTokenPair(ca jwtauth.Claims, cr jwtauth.Claims) (string, } // CreateJWT returns an access token for provided account claims. -func (a *TokenAuth) CreateJWT(c jwtauth.Claims) (string, error) { - c.SetIssuedNow() - c.SetExpiryIn(a.JwtExpiry) +func (a *TokenAuth) CreateJWT(c jwt.MapClaims) (string, error) { + jwtauth.SetIssuedNow(c) + jwtauth.SetExpiryIn(c, a.JwtExpiry) _, tokenString, err := a.JwtAuth.Encode(c) return tokenString, err } // CreateRefreshJWT returns a refresh token for provided token Claims. -func (a *TokenAuth) CreateRefreshJWT(c jwtauth.Claims) (string, error) { - c.SetIssuedNow() - c.SetExpiryIn(a.JwtRefreshExpiry) +func (a *TokenAuth) CreateRefreshJWT(c jwt.MapClaims) (string, error) { + jwtauth.SetIssuedNow(c) + jwtauth.SetExpiryIn(c, a.JwtRefreshExpiry) _, tokenString, err := a.JwtAuth.Encode(c) return tokenString, err } diff --git a/auth/pwdless/account.go b/auth/pwdless/account.go index e8f5e2b..3267332 100644 --- a/auth/pwdless/account.go +++ b/auth/pwdless/account.go @@ -6,7 +6,7 @@ import ( "time" "github.com/dhax/go-base/auth/jwt" - "github.com/go-chi/jwtauth" + jwtgo "github.com/dgrijalva/jwt-go" validation "github.com/go-ozzo/ozzo-validation" "github.com/go-ozzo/ozzo-validation/is" "github.com/go-pg/pg/orm" @@ -66,8 +66,8 @@ func (a *Account) CanLogin() bool { } // Claims returns the account's claims to be signed -func (a *Account) Claims() jwtauth.Claims { - return jwtauth.Claims{ +func (a *Account) Claims() jwtgo.MapClaims { + return jwtgo.MapClaims{ "id": a.ID, "sub": a.Name, "roles": a.Roles, diff --git a/auth/pwdless/api.go b/auth/pwdless/api.go index 4816824..549db1a 100644 --- a/auth/pwdless/api.go +++ b/auth/pwdless/api.go @@ -187,7 +187,7 @@ func (rs *Resource) token(w http.ResponseWriter, r *http.Request) { browser, _ := ua.Browser() token := &jwt.Token{ - Token: uuid.NewV4().String(), + Token: uuid.Must(uuid.NewV4()).String(), Expiry: time.Now().Add(rs.TokenAuth.JwtRefreshExpiry), UpdatedAt: time.Now(), AccountID: acc.ID, @@ -247,7 +247,7 @@ func (rs *Resource) refresh(w http.ResponseWriter, r *http.Request) { return } - token.Token = uuid.NewV4().String() + token.Token = uuid.Must(uuid.NewV4()).String() token.Expiry = time.Now().Add(rs.TokenAuth.JwtRefreshExpiry) token.UpdatedAt = time.Now()