Use data returned by a CAS server

The following methods of CASProvider are used to extract data from the CAS responses.

CASProvider.extract_uid(data)

Extract the user uid.

Notes

Each pair (provider_id, uid) is unique and related to a single user.

Parameters:data (uid (str), extra (dict)) – CAS response. Example: ('alice', {'name': 'Alice'})
Returns:Default to data[0], user identifier for the CAS server.
Return type:str
CASProvider.extract_common_fields(data)

Extract the data to pass to SOCIALACCOUNT_ADAPTER.populate_user().

Parameters:data (uid (str), extra (dict)) – CAS response. Example: ('alice', {'name': 'Alice'})
Returns:Default:
{
    'username': extra.get('username', uid),
    'email': extra.get('email'),
    'first_name': extra.get('first_name'),
    'last_name': extra.get('last_name'),
    'name': extra.get('name'),
}
Return type:dict
CASProvider.extract_email_addresses(data)

Extract the email addresses.

Parameters:data (uid (str), extra (dict)) – CAS response. Example: ('alice', {'name': 'Alice'})
Returns:By default, [].

Example:

[
    EmailAddress(
        email='user@domain.net',
        verified=True, primary=True,
    ),
    EmailAddress(
        email='alias@domain.net',
        verified=True, primary=False,
    ),
]
Return type:list of EmailAddress
CASProvider.extract_extra_data(data)

Extract the data to save to SocialAccount.extra_data.

Parameters:data (uid (str), extra (dict)) – CAS response. Example: ('alice', {'name': 'Alice'})
Returns:By default, data.
Return type:dict