HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/aigenerator/venv/lib/python3.12/site-packages/social_core/backends/mineid.py
from .oauth import BaseOAuth2


class MineIDOAuth2(BaseOAuth2):
    """MineID OAuth2 authentication backend"""

    name = "mineid"
    _AUTHORIZATION_URL = "%(scheme)s://%(host)s/oauth/authorize"
    _ACCESS_TOKEN_URL = "%(scheme)s://%(host)s/oauth/access_token"
    ACCESS_TOKEN_METHOD = "POST"
    SCOPE_SEPARATOR = ","
    EXTRA_DATA = []

    def get_user_details(self, response):
        """Return user details"""
        return {"email": response.get("email"), "username": response.get("email")}

    def user_data(self, access_token, *args, **kwargs):
        return self._user_data(access_token)

    def _user_data(self, access_token, path=None):
        url = "%(scheme)s://%(host)s/api/user" % self.get_mineid_url_params()
        return self.get_json(url, params={"access_token": access_token})

    @property
    def AUTHORIZATION_URL(self):
        return self._AUTHORIZATION_URL % self.get_mineid_url_params()

    @property
    def ACCESS_TOKEN_URL(self):
        return self._ACCESS_TOKEN_URL % self.get_mineid_url_params()

    def get_mineid_url_params(self):
        return {
            "host": self.setting("HOST", "www.mineid.org"),
            "scheme": self.setting("SCHEME", "https"),
        }