Source code for flask_unchained.bundles.oauth.services

from flask_oauthlib.client import OAuthRemoteApp
from flask_unchained import Service, unchained
from typing import *


[docs]@unchained.service('oauth_service') class OAuthService(Service):
[docs] def get_user_details(self, provider: OAuthRemoteApp) -> Tuple[str, dict]: """ For the given ``provider``, return the user's email address and any extra data to create the user model with. """ if provider.name == 'amazon': data = provider.get('/user/profile').data return data['email'], {} elif provider.name == 'github': data = provider.get('/user').data return data['email'], {} elif provider.name == 'gitlab': data = provider.get('user').data return data['email'], {} raise NotImplementedError(f'Unknown OAuth remote app: {provider.name}')
[docs] def on_authorized(self, provider: OAuthRemoteApp) -> None: """ Optional callback to add custom behavior upon OAuth authorized. """ pass