File: //home/arjun/projects/aigenerator/venv/lib/python3.12/site-packages/social_core/backends/coding.py
"""
Coding OAuth2 backend, docs at:
"""
from urllib.parse import urljoin
from .oauth import BaseOAuth2
class CodingOAuth2(BaseOAuth2):
"""Coding OAuth authentication backend"""
name = "coding"
API_URL = "https://coding.net/api/"
AUTHORIZATION_URL = "https://coding.net/oauth_authorize.html"
ACCESS_TOKEN_URL = "https://coding.net/api/oauth/access_token"
ACCESS_TOKEN_METHOD = "POST"
SCOPE_SEPARATOR = ","
DEFAULT_SCOPE = ["user"]
REDIRECT_STATE = False
def api_url(self):
return self.API_URL
def get_user_details(self, response):
"""Return user details from Github account"""
fullname, first_name, last_name = self.get_user_names(response.get("name"))
return {
"username": response.get("name"),
"email": response.get("email") or "",
"fullname": fullname,
"first_name": first_name,
"last_name": last_name,
}
def user_data(self, access_token, *args, **kwargs):
"""Loads user data from service"""
data = self._user_data(access_token)
if data.get("code") != 0:
# 获取失败
pass
return data.get("data")
def _user_data(self, access_token, path=None):
url = urljoin(self.api_url(), "account/current_user{}".format(path or ""))
return self.get_json(url, params={"access_token": access_token})