Как заставить сервер oauth2 генерировать токены JWT, чтобы избежать токенов магазина - PullRequest
0 голосов
/ 07 июня 2019

Я использую authlib для разработки аутентификационного сервера.

Создание токена носителя по умолчанию - это произвольная строка, которая хранится в базе данных.

То, что я хочу, этосгенерировать JWT, но не хранить его в базе данных.

Я использую опцию OAUTH2_ACCESS_TOKEN_GENERATOR для генерации токена:

from datetime import datetime, timedelta
from authlib.jose import jwt

def gen_token(*args, **kwargs):
    key_location = '/path/to/key/id_rsa'

    header = {'alg': 'RS256'}
    payload = {
        'iat': datetime.utcnow(),
        'exp': datetime.utcnow() + timedelta(seconds=3600)
    }
    t = jwt.encode(header, payload, open(key_location, 'r').read())
    return t

Как можно избежать сгенерированного токена с использованием client_credentials grant?

1 Ответ

0 голосов
/ 08 июня 2019

Вы можете избежать сохранения токена, передав функцию «ничего не делать» save_token.

https://docs.authlib.org/en/latest/flask/2/authorization-server.html#server

def save_token(token, request):
    pass

server = AuthorizationServer(..., save_token=save_token)
...