blob: 885cbd81a0e38b5f658125d1140e3eef1e3147ec (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
"""Protect the resources endpoints"""
from flask import current_app as app
from authlib.oauth2.rfc6750 import BearerTokenValidator as _BearerTokenValidator
from authlib.integrations.flask_oauth2 import ResourceProtector, current_token
from gn3.auth import db
from gn3.auth.authentication.oauth2.models.oauth2token import token_by_access_token
class BearerTokenValidator(_BearerTokenValidator):
"""Extends `authlib.oauth2.rfc6750.BearerTokenValidator`"""
def authenticate_token(self, token_string: str):
with db.connection(app.config["AUTH_DB"]) as conn:
return token_by_access_token(conn, token_string).maybe(
None, lambda tok: tok)
require_oauth = ResourceProtector()
require_oauth.register_token_validator(BearerTokenValidator())
|