HEX
Server: LiteSpeed
System: Linux CentOS-79-64-minimal 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: vishn3436 (5293)
PHP: 8.0.15
Disabled: NONE
Upload Files
File: //scripts/script-server/src/auth/auth_google_oauth.py
import logging

import tornado.auth

from auth.auth_abstract_oauth import AbstractOauthAuthenticator, _OauthUserInfo

LOGGER = logging.getLogger('script_server.GoogleOauthAuthorizer')


# noinspection PyProtectedMember
class GoogleOauthAuthenticator(AbstractOauthAuthenticator):
    def __init__(self, params_dict):
        params_dict['group_support'] = False

        super().__init__(tornado.auth.GoogleOAuth2Mixin._OAUTH_AUTHORIZE_URL,
                         tornado.auth.GoogleOAuth2Mixin._OAUTH_ACCESS_TOKEN_URL,
                         'email',
                         params_dict)

    async def fetch_user_info(self, access_token) -> _OauthUserInfo:
        oauth_mixin = tornado.auth.GoogleOAuth2Mixin()
        user_future = oauth_mixin.oauth2_request(
            tornado.auth.GoogleOAuth2Mixin._OAUTH_USERINFO_URL,
            access_token=access_token)
        user_response = await user_future
        if not user_response:
            return None

        return _OauthUserInfo(user_response.get('email'), True, user_response)

    async def fetch_user_groups(self, access_token):
        return []