Создать токен JWT Refre sh с библиотекой go -oauth2 / oauth2 - PullRequest
0 голосов
/ 16 января 2020

Я генерирую токены доступа Oauth2 с библиотекой go https://github.com/go-oauth2/oauth2 (v3). Я делаю это со следующим go псевдокодом:

jwtParams := generates.JWTAccessGenerate{
    SignedKey:    []byte(secretKey),
    SignedMethod: jwt.SigningMethodHS512,
}
manage.Manager.MapAccessGenerate(&jwtParams)

req := oauth2.TokenGenerateRequest{
    ClientID:    clientId,
    UserID:      userId,
    RedirectURI: redirectUri,
    Code:        authCode,
}

gt := oauth2.GrantType("authorization_code")
tokenInfo, _ := manage.Manager.GenerateAccessToken(gt, &req)

В результате я получаю токен доступа JWT, но refre sh токен не является.

access=XXXX.YYYYY                   expires=5m0s         <== JWT token - OK
refresh=YNFCZUFBWTUEXE5WJMD68W      expires=12000h0m0s   <== MY ISSUE - Not JWT

Как мне получить эту библиотеку для генерирования JWT refre sh token?

Обновление 17-января-2020: После дополнительных исследований я отметил, что многие реализации не заботятся о представлениях JWT для refre sh токены, так что мне может и не понадобиться. Я все еще хотел бы знать, возможно ли это с этой библиотекой, для дальнейшего использования.

1 Ответ

0 голосов
/ 16 января 2020

Сохраните значение refre sh, используйте refre sh для обновления sh токена доступа в будущем:

req := oauth2.TokenGenerateRequest{
    ClientID:    clientId,
    UserID:      userId,
    RedirectURI: redirectUri,
    Code:        authCode,
}
req.Refresh = refresh
req.Scope = "owner"
rti, err := manager.RefreshAccessToken(req)

Вы также можете вызвать manager.LoadRefreshToken(accessToken), чтобы загрузить RefreshToken из accessToken .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...