From 44150c557e3f2324190ba5d8da4435ed23f3ce12 Mon Sep 17 00:00:00 2001 From: LarryLiu Date: Fri, 28 Mar 2025 11:38:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=BC=80=E6=94=BE=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=A2=9E=E5=8A=A0refreshtoken=E7=BC=93=E5=AD=98=20(#8?= =?UTF-8?q?22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update accessToken.go add openplatform refresh_token * Update accessToken.go openplatform add refresh_token expire set 10 year * Update openplatform/context/accessToken.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: houseme Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- openplatform/context/accessToken.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/openplatform/context/accessToken.go b/openplatform/context/accessToken.go index 465eb17..9a231be 100644 --- a/openplatform/context/accessToken.go +++ b/openplatform/context/accessToken.go @@ -225,6 +225,10 @@ func (ctx *Context) RefreshAuthrTokenContext(stdCtx context.Context, appid, refr if err := cache.SetContext(stdCtx, ctx.Cache, authrTokenKey, ret.AccessToken, time.Second*time.Duration(ret.ExpiresIn-30)); err != nil { return nil, err } + refreshTokenKey := "authorizer_refresh_token_" + appid + if err := cache.SetContext(stdCtx, ctx.Cache, refreshTokenKey, ret.RefreshToken, 10*365*24*60*60*time.Second); err != nil { + return nil, err + } return ret, nil } @@ -238,8 +242,18 @@ func (ctx *Context) GetAuthrAccessTokenContext(stdCtx context.Context, appid str authrTokenKey := "authorizer_access_token_" + appid val := cache.GetContext(stdCtx, ctx.Cache, authrTokenKey) if val == nil { - return "", fmt.Errorf("cannot get authorizer %s access token", appid) + refreshTokenKey := "authorizer_refresh_token_" + appid + val := cache.GetContext(stdCtx, ctx.Cache, refreshTokenKey) + if val == nil { + return "", fmt.Errorf("cannot get authorizer %s refresh token", appid) + } + token, err := ctx.RefreshAuthrTokenContext(stdCtx, appid, val.(string)) + if err != nil { + return "", err + } + return token.AccessToken, nil } + return val.(string), nil }