Standard ClaimsΒΆ
This subset of OpenID Connect defines a set of standard Claims. They are returned in the UserInfo Response.
The package comes with a setting called OIDC_USERINFO
, basically it refers to a class that MUST have a class-method named get_by_user
, this will be called with a Django User
instance and returns an object with all the claims of the user as attributes.
List of all the attributes grouped by scopes:
profile | phone | address | |
---|---|---|---|
name | phone_number | address_formatted | |
given_name | email_verified | phone_number_verified | address_street_address |
family_name | address_locality | ||
middle_name | address_region | ||
nickname | address_postal_code | ||
preferred_username | address_country | ||
profile | |||
picture | |||
website | |||
gender | |||
birthdate | |||
zoneinfo | |||
locale | |||
updated_at |
Example using a django model:
from django.conf import settings
from django.db import models
class UserInfo(models.Model):
GENDER_CHOICES = [
('F', 'Female'),
('M', 'Male'),
]
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True)
given_name = models.CharField(max_length=255, blank=True, null=True)
family_name = models.CharField(max_length=255, blank=True, null=True)
gender = models.CharField(max_length=100, choices=GENDER_CHOICES, null=True)
birthdate = models.DateField(null=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
email_verified = models.NullBooleanField(default=False)
phone_number = models.CharField(max_length=255, blank=True, null=True)
phone_number_verified = models.NullBooleanField(default=False)
address_locality = models.CharField(max_length=255, blank=True, null=True)
address_country = models.CharField(max_length=255, blank=True, null=True)
@classmethod
def get_by_user(cls, user):
return cls.objects.get(user=user)