【问题标题】:What api authentication method should be used for server to server communication?服务器到服务器通信应该使用什么 api 身份验证方法?
【发布时间】:2020-10-10 06:00:03
【问题描述】:

我在烧瓶中有一个网络应用程序,用户可以使用电子邮件和密码登录。连接到同一个数据库我有一个 api,这些相同的用户将以编程方式使用它。当他们提出请求时,我需要知道是谁提出请求。

我阅读了有关身份验证和授权的信息,但我对哪种方法最适合我的用例感到困惑。我专注于 JWT 令牌,但令牌的到期让我认为它在这种情况下并不是最好的。

在令牌过期等情况下,服务器应该如何以编程方式登录?有没有一种常见的方式来做我假装的事情?

【问题讨论】:

    标签: api authentication flask authorization flask-restful


    【解决方案1】:

    使用 jwt 验证 api(我使用 Flask-JWT-Extended

    示例:

    def login_required(func):
        @wraps(func)
        def decorate(*args, **kwargs):
            verify_refresh_token()
            identify = get_jwt_identity()
            expires_time = datetime.fromtimestamp(get_raw_jwt().get('exp'))
            remaining = expires_time - datetime.now()
            # auto refresh token if token expiring soon
            refresh_space = current_app.config['JWT_MIN_REFRESH_SPACE']
           # store the token in requests.g object
            if refresh_space and remaining < refresh_space:
                g.refresh_token = create_refresh_token(identity=identify)
                g.id = identify
            return func(*args, **kwargs)
    
        return decorate
    
    @login_required
    def view_func():
        pass
        # return json
    

    token过期时,func会自动刷新token,你可以在requests.g对象中获取新的token,然后返回给用户。

    quote

    quote

    【讨论】:

    猜你喜欢
    • 2019-07-23
    • 1970-01-01
    • 2016-05-16
    • 2012-11-07
    • 2012-04-09
    • 2010-10-21
    • 2017-08-15
    • 2019-12-24
    • 2021-04-27
    相关资源
    最近更新 更多