File: //home/arjun/projects/aigenerator/venv/lib/python3.12/site-packages/social_core/backends/behance.py
"""
Behance OAuth2 backend, docs at:
https://python-social-auth.readthedocs.io/en/latest/backends/behance.html
"""
from .oauth import BaseOAuth2
class BehanceOAuth2(BaseOAuth2):
"""Behance OAuth authentication backend"""
name = "behance"
AUTHORIZATION_URL = "https://www.behance.net/v2/oauth/authenticate"
ACCESS_TOKEN_URL = "https://www.behance.net/v2/oauth/token"
ACCESS_TOKEN_METHOD = "POST"
SCOPE_SEPARATOR = "|"
EXTRA_DATA = [("username", "username")]
REDIRECT_STATE = False
def get_user_id(self, details, response):
return response["user"]["id"]
def get_user_details(self, response):
"""Return user details from Behance account"""
user = response["user"]
fullname, first_name, last_name = self.get_user_names(
user["display_name"], user["first_name"], user["last_name"]
)
return {
"username": user["username"],
"fullname": fullname,
"first_name": first_name,
"last_name": last_name,
"email": "",
}
def extra_data(self, user, uid, response, details=None, *args, **kwargs):
# Pull up the embedded user attributes so they can be found as extra
# data. See the example token response for possible attributes:
# http://www.behance.net/dev/authentication#step-by-step
data = response.copy()
data.update(response["user"])
return super().extra_data(user, uid, data, details, *args, **kwargs)