From 16af265e8b857df10939883b4e800d45427c7aa7 Mon Sep 17 00:00:00 2001 From: Ben Toogood Date: Thu, 14 May 2020 13:56:51 +0100 Subject: [PATCH] Seperate JWT refresh / access tokens --- auth/jwt/jwt.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/auth/jwt/jwt.go b/auth/jwt/jwt.go index 86815bce..9c118e1a 100644 --- a/auth/jwt/jwt.go +++ b/auth/jwt/jwt.go @@ -2,6 +2,7 @@ package jwt import ( "sync" + "time" "github.com/micro/go-micro/v2/auth" "github.com/micro/go-micro/v2/auth/token" @@ -176,15 +177,20 @@ func (j *jwt) Token(opts ...auth.TokenOption) (*auth.Token, error) { return nil, err } - tok, err := j.jwt.Generate(account, token.WithExpiry(options.Expiry)) + access, err := j.jwt.Generate(account, token.WithExpiry(options.Expiry)) + if err != nil { + return nil, err + } + + refresh, err := j.jwt.Generate(account, token.WithExpiry(options.Expiry+time.Hour)) if err != nil { return nil, err } return &auth.Token{ - Created: tok.Created, - Expiry: tok.Expiry, - AccessToken: tok.Token, - RefreshToken: tok.Token, + Created: access.Created, + Expiry: access.Expiry, + AccessToken: access.Token, + RefreshToken: refresh.Token, }, nil }