'Airflow 2.2.5 Authlib 1.0.0 Google Login

I'm experiencing problems with Google OAUTH login after updating Airflow to version 2.2.5 and Authlib required as constraint to be at version 1.0.0.

Here my previous webserver_config.py

import os
from airflow.www.fab_security.manager import AUTH_OAUTH
# from flask_appbuilder.security.manager import AUTH_OAUTH
from airflow.configuration import conf

basedir = os.path.abspath(os.path.dirname(__file__))

# The SQLAlchemy connection string.
AUTH_TYPE = AUTH_OAUTH

AUTH_USER_REGISTRATION = True

AUTH_USER_REGISTRATION_ROLE = "Viewer"
AUTH_USER_REGISTRATION_ROLE_JMESPATH = "contains(['$$CUSTOM_ADMIN_EMAIL$$'], email) && 'Admin' || contains(['$$CUSTOM_USER_EMAIL$$'], email) && 'User' || 'Viewer'"

CSRF_ENABLED = True

# The SQLAlchemy connection string.
SQLALCHEMY_DATABASE_URI = conf.get('core', 'SQL_ALCHEMY_CONN')

OAUTH_PROVIDERS = [
    {'name': 'google', 'icon': 'fa-google', 'token_key': 'access_token',
     'whitelist': ['@$$CUSTOM_DOMAIN$$'],
     'remote_app': {
         'client_id': '$$CLIENT_ID$$',
         'client_secret': '$$CLIENT_SECRET$$',
         'api_base_url': 'https://www.googleapis.com/oauth2/v2/',
         'client_kwargs': {
             'scope': 'email profile'
         },
         'request_token_url': None,
         'access_token_url': 'https://accounts.google.com/o/oauth2/token',
         'authorize_url': 'https://accounts.google.com/o/oauth2/auth'}
     },
]

After trying to login it appears:

enter image description here

With this error log:

[2022-04-06 06:44:39,729] {views.py:671} ERROR - Error returning OAuth user info: missing_token:

Anyone knows if it's a bug or I'm missing updates to be done in the code after the update?



Solution 1:[1]

Thanks @lepture. We updated cosntraints for Airflow 2.2.5 and refreshed the images with Authlib=1.0.1 now !

Solution 2:[2]

This is a bug, and it has been fixed just now. Please upgrade Authlib to 1.0.1.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jarek Potiuk
Solution 2 lepture