【问题标题】:How to make oauth2 server generating JWT tokens in order to avoid store tokens如何让 oauth2 服务器生成 JWT 令牌以避免存储令牌
【发布时间】:2019-10-23 06:22:00
【问题描述】:

我正在使用authlib 开发身份验证服务器。

默认的 Bearer 令牌创建是存储在数据库中的随机字符串。

我想要的是生成一个 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_credentialsgrant 存储生成的令牌?

【问题讨论】:

    标签: python jwt authlib


    【解决方案1】:

    您可以通过传递“什么都不做”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)
    

    【讨论】:

      猜你喜欢
      • 2020-05-25
      • 2018-08-29
      • 2021-07-29
      • 2019-02-01
      • 2020-05-02
      • 1970-01-01
      • 2018-12-07
      • 2019-05-06
      • 1970-01-01
      相关资源
      最近更新 更多