diff -ur oidc_provider.orig/migrations/0001_initial.py oidc_provider/migrations/0001_initial.py
--- oidc_provider.orig/migrations/0001_initial.py	2018-04-13 21:43:28.000000000 +0200
+++ oidc_provider/migrations/0001_initial.py	2020-06-07 13:34:26.826716519 +0200
@@ -18,8 +18,8 @@
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('name', models.CharField(default=b'', max_length=100)),
-                ('client_id', models.CharField(unique=True, max_length=255)),
-                ('client_secret', models.CharField(unique=True, max_length=255)),
+                ('client_id', models.CharField(unique=True, max_length=228)),
+                ('client_secret', models.CharField(unique=True, max_length=228)),
                 ('response_type', models.CharField(max_length=30, choices=[
                     (b'code', b'code (Authorization Code Flow)'), (b'id_token', b'id_token (Implicit Flow)'),
                     (b'id_token token', b'id_token token (Implicit Flow)')])),
@@ -35,7 +35,7 @@
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('expires_at', models.DateTimeField()),
                 ('_scope', models.TextField(default=b'')),
-                ('code', models.CharField(unique=True, max_length=255)),
+                ('code', models.CharField(unique=True, max_length=228)),
                 ('client', models.ForeignKey(to='oidc_provider.Client', on_delete=models.CASCADE)),
             ],
             options={
@@ -49,7 +49,7 @@
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('expires_at', models.DateTimeField()),
                 ('_scope', models.TextField(default=b'')),
-                ('access_token', models.CharField(unique=True, max_length=255)),
+                ('access_token', models.CharField(unique=True, max_length=228)),
                 ('_id_token', models.TextField()),
                 ('client', models.ForeignKey(to='oidc_provider.Client', on_delete=models.CASCADE)),
             ],
@@ -62,26 +62,26 @@
             name='UserInfo',
             fields=[
                 ('user', models.OneToOneField(primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
-                ('given_name', models.CharField(max_length=255, null=True, blank=True)),
-                ('family_name', models.CharField(max_length=255, null=True, blank=True)),
-                ('middle_name', models.CharField(max_length=255, null=True, blank=True)),
-                ('nickname', models.CharField(max_length=255, null=True, blank=True)),
+                ('given_name', models.CharField(max_length=228, null=True, blank=True)),
+                ('family_name', models.CharField(max_length=228, null=True, blank=True)),
+                ('middle_name', models.CharField(max_length=228, null=True, blank=True)),
+                ('nickname', models.CharField(max_length=228, null=True, blank=True)),
                 ('gender', models.CharField(max_length=100, null=True, choices=[(b'F', b'Female'), (b'M', b'Male')])),
                 ('birthdate', models.DateField(null=True)),
                 ('zoneinfo', models.CharField(default=b'', max_length=100, null=True, blank=True)),
-                ('preferred_username', models.CharField(max_length=255, null=True, blank=True)),
+                ('preferred_username', models.CharField(max_length=228, null=True, blank=True)),
                 ('profile', models.URLField(default=b'', null=True, blank=True)),
                 ('picture', models.URLField(default=b'', null=True, blank=True)),
                 ('website', models.URLField(default=b'', null=True, blank=True)),
                 ('email_verified', models.NullBooleanField(default=False)),
                 ('locale', models.CharField(max_length=100, null=True, blank=True)),
-                ('phone_number', models.CharField(max_length=255, null=True, blank=True)),
+                ('phone_number', models.CharField(max_length=228, null=True, blank=True)),
                 ('phone_number_verified', models.NullBooleanField(default=False)),
-                ('address_street_address', models.CharField(max_length=255, null=True, blank=True)),
-                ('address_locality', models.CharField(max_length=255, null=True, blank=True)),
-                ('address_region', models.CharField(max_length=255, null=True, blank=True)),
-                ('address_postal_code', models.CharField(max_length=255, null=True, blank=True)),
-                ('address_country', models.CharField(max_length=255, null=True, blank=True)),
+                ('address_street_address', models.CharField(max_length=228, null=True, blank=True)),
+                ('address_locality', models.CharField(max_length=228, null=True, blank=True)),
+                ('address_region', models.CharField(max_length=228, null=True, blank=True)),
+                ('address_postal_code', models.CharField(max_length=228, null=True, blank=True)),
+                ('address_country', models.CharField(max_length=228, null=True, blank=True)),
                 ('updated_at', models.DateTimeField(auto_now=True, null=True)),
             ],
             options={
diff -ur oidc_provider.orig/migrations/0003_code_nonce.py oidc_provider/migrations/0003_code_nonce.py
--- oidc_provider.orig/migrations/0003_code_nonce.py	2018-03-08 14:55:41.000000000 +0100
+++ oidc_provider/migrations/0003_code_nonce.py	2020-06-07 13:34:26.826716519 +0200
@@ -14,6 +14,6 @@
         migrations.AddField(
             model_name='code',
             name='nonce',
-            field=models.CharField(default=b'', max_length=255, blank=True),
+            field=models.CharField(default=b'', max_length=228, blank=True),
         ),
     ]
diff -ur oidc_provider.orig/migrations/0005_token_refresh_token.py oidc_provider/migrations/0005_token_refresh_token.py
--- oidc_provider.orig/migrations/0005_token_refresh_token.py	2018-03-22 16:47:44.000000000 +0100
+++ oidc_provider/migrations/0005_token_refresh_token.py	2020-06-07 13:34:26.826716519 +0200
@@ -14,7 +14,7 @@
         migrations.AddField(
             model_name='token',
             name='refresh_token',
-            field=models.CharField(max_length=255, unique=True, null=True),
+            field=models.CharField(max_length=228, unique=True, null=True),
             preserve_default=True,
         ),
     ]
diff -ur oidc_provider.orig/migrations/0012_auto_20160405_2041.py oidc_provider/migrations/0012_auto_20160405_2041.py
--- oidc_provider.orig/migrations/0012_auto_20160405_2041.py	2018-03-22 16:48:06.000000000 +0100
+++ oidc_provider/migrations/0012_auto_20160405_2041.py	2020-06-07 13:34:26.826716519 +0200
@@ -15,6 +15,6 @@
         migrations.AlterField(
             model_name='client',
             name='client_secret',
-            field=models.CharField(blank=True, default=b'', max_length=255),
+            field=models.CharField(blank=True, default=b'', max_length=228),
         ),
     ]
diff -ur oidc_provider.orig/migrations/0013_auto_20160407_1912.py oidc_provider/migrations/0013_auto_20160407_1912.py
--- oidc_provider.orig/migrations/0013_auto_20160407_1912.py	2018-03-22 16:48:06.000000000 +0100
+++ oidc_provider/migrations/0013_auto_20160407_1912.py	2020-06-07 13:34:26.826716519 +0200
@@ -15,11 +15,11 @@
         migrations.AddField(
             model_name='code',
             name='code_challenge',
-            field=models.CharField(max_length=255, null=True),
+            field=models.CharField(max_length=228, null=True),
         ),
         migrations.AddField(
             model_name='code',
             name='code_challenge_method',
-            field=models.CharField(max_length=255, null=True),
+            field=models.CharField(max_length=228, null=True),
         ),
     ]
diff -ur oidc_provider.orig/migrations/0015_change_client_code.py oidc_provider/migrations/0015_change_client_code.py
--- oidc_provider.orig/migrations/0015_change_client_code.py	2018-04-13 21:43:28.000000000 +0200
+++ oidc_provider/migrations/0015_change_client_code.py	2020-06-07 13:34:26.826716519 +0200
@@ -20,7 +20,7 @@
         migrations.AlterField(
             model_name='client',
             name='client_secret',
-            field=models.CharField(blank=True, default='', max_length=255),
+            field=models.CharField(blank=True, default='', max_length=228),
         ),
         migrations.AlterField(
             model_name='client',
@@ -63,7 +63,7 @@
         migrations.AlterField(
             model_name='code',
             name='nonce',
-            field=models.CharField(blank=True, default='', max_length=255),
+            field=models.CharField(blank=True, default='', max_length=228),
         ),
         migrations.AlterField(
             model_name='token',
diff -ur oidc_provider.orig/migrations/0016_userconsent_and_verbosenames.py oidc_provider/migrations/0016_userconsent_and_verbosenames.py
--- oidc_provider.orig/migrations/0016_userconsent_and_verbosenames.py	2018-04-13 21:43:28.000000000 +0200
+++ oidc_provider/migrations/0016_userconsent_and_verbosenames.py	2020-06-07 13:34:26.826716519 +0200
@@ -20,7 +20,7 @@
             model_name='userconsent',
             name='date_given',
             field=models.DateTimeField(
-                default=datetime.datetime(2016, 6, 10, 17, 53, 48, 889808, tzinfo=utc), verbose_name='Date Given'),
+                default=datetime.datetime(2016, 6, 10, 17, 53, 48, 889808), verbose_name='Date Given'),
             preserve_default=False,
         ),
         migrations.AlterField(
@@ -32,12 +32,12 @@
         migrations.AlterField(
             model_name='client',
             name='client_id',
-            field=models.CharField(max_length=255, unique=True, verbose_name='Client ID'),
+            field=models.CharField(max_length=228, unique=True, verbose_name='Client ID'),
         ),
         migrations.AlterField(
             model_name='client',
             name='client_secret',
-            field=models.CharField(blank=True, default=b'', max_length=255, verbose_name='Client SECRET'),
+            field=models.CharField(blank=True, default=b'', max_length=228, verbose_name='Client SECRET'),
         ),
         migrations.AlterField(
             model_name='client',
@@ -84,17 +84,17 @@
         migrations.AlterField(
             model_name='code',
             name='code',
-            field=models.CharField(max_length=255, unique=True, verbose_name='Code'),
+            field=models.CharField(max_length=228, unique=True, verbose_name='Code'),
         ),
         migrations.AlterField(
             model_name='code',
             name='code_challenge',
-            field=models.CharField(max_length=255, null=True, verbose_name='Code Challenge'),
+            field=models.CharField(max_length=228, null=True, verbose_name='Code Challenge'),
         ),
         migrations.AlterField(
             model_name='code',
             name='code_challenge_method',
-            field=models.CharField(max_length=255, null=True, verbose_name='Code Challenge Method'),
+            field=models.CharField(max_length=228, null=True, verbose_name='Code Challenge Method'),
         ),
         migrations.AlterField(
             model_name='code',
@@ -109,7 +109,7 @@
         migrations.AlterField(
             model_name='code',
             name='nonce',
-            field=models.CharField(blank=True, default=b'', max_length=255, verbose_name='Nonce'),
+            field=models.CharField(blank=True, default=b'', max_length=228, verbose_name='Nonce'),
         ),
         migrations.AlterField(
             model_name='code',
@@ -135,7 +135,7 @@
         migrations.AlterField(
             model_name='token',
             name='access_token',
-            field=models.CharField(max_length=255, unique=True, verbose_name='Access Token'),
+            field=models.CharField(max_length=228, unique=True, verbose_name='Access Token'),
         ),
         migrations.AlterField(
             model_name='token',
@@ -151,7 +151,7 @@
         migrations.AlterField(
             model_name='token',
             name='refresh_token',
-            field=models.CharField(max_length=255, null=True, unique=True, verbose_name='Refresh Token'),
+            field=models.CharField(max_length=228, null=True, unique=True, verbose_name='Refresh Token'),
         ),
         migrations.AlterField(
             model_name='token',
diff -ur oidc_provider.orig/migrations/0017_auto_20160811_1954.py oidc_provider/migrations/0017_auto_20160811_1954.py
--- oidc_provider.orig/migrations/0017_auto_20160811_1954.py	2018-04-13 21:43:28.000000000 +0200
+++ oidc_provider/migrations/0017_auto_20160811_1954.py	2020-06-07 13:34:26.826716519 +0200
@@ -20,7 +20,7 @@
         migrations.AlterField(
             model_name='client',
             name='client_secret',
-            field=models.CharField(blank=True, default='', max_length=255, verbose_name='Client SECRET'),
+            field=models.CharField(blank=True, default='', max_length=228, verbose_name='Client SECRET'),
         ),
         migrations.AlterField(
             model_name='client',
@@ -56,7 +56,7 @@
         migrations.AlterField(
             model_name='code',
             name='nonce',
-            field=models.CharField(blank=True, default='', max_length=255, verbose_name='Nonce'),
+            field=models.CharField(blank=True, default='', max_length=228, verbose_name='Nonce'),
         ),
         migrations.AlterField(
             model_name='token',
diff -ur oidc_provider.orig/migrations/0018_hybridflow_and_clientattrs.py oidc_provider/migrations/0018_hybridflow_and_clientattrs.py
--- oidc_provider.orig/migrations/0018_hybridflow_and_clientattrs.py	2018-04-13 21:43:28.000000000 +0200
+++ oidc_provider/migrations/0018_hybridflow_and_clientattrs.py	2020-06-07 13:34:26.826716519 +0200
@@ -15,7 +15,7 @@
         migrations.AddField(
             model_name='client',
             name='contact_email',
-            field=models.CharField(blank=True, default='', max_length=255, verbose_name='Contact Email'),
+            field=models.CharField(blank=True, default='', max_length=228, verbose_name='Contact Email'),
         ),
         migrations.AddField(
             model_name='client',
@@ -30,13 +30,13 @@
                 blank=True,
                 default='',
                 help_text='External reference to the privacy policy of the client.',
-                max_length=255,
+                max_length=228,
                 verbose_name='Terms URL'),
         ),
         migrations.AddField(
             model_name='client',
             name='website_url',
-            field=models.CharField(blank=True, default='', max_length=255, verbose_name='Website URL'),
+            field=models.CharField(blank=True, default='', max_length=228, verbose_name='Website URL'),
         ),
         migrations.AlterField(
             model_name='client',
diff -ur oidc_provider.orig/migrations/0019_auto_20161005_1552.py oidc_provider/migrations/0019_auto_20161005_1552.py
--- oidc_provider.orig/migrations/0019_auto_20161005_1552.py	2018-03-22 16:48:30.000000000 +0100
+++ oidc_provider/migrations/0019_auto_20161005_1552.py	2020-06-07 13:34:26.826716519 +0200
@@ -15,6 +15,6 @@
         migrations.AlterField(
             model_name='client',
             name='client_secret',
-            field=models.CharField(blank=True, max_length=255, verbose_name='Client SECRET'),
+            field=models.CharField(blank=True, max_length=228, verbose_name='Client SECRET'),
         ),
     ]
diff -ur oidc_provider.orig/migrations/0021_refresh_token_not_unique.py oidc_provider/migrations/0021_refresh_token_not_unique.py
--- oidc_provider.orig/migrations/0021_refresh_token_not_unique.py	2018-03-22 16:48:30.000000000 +0100
+++ oidc_provider/migrations/0021_refresh_token_not_unique.py	2020-06-07 13:34:26.826716519 +0200
@@ -15,7 +15,7 @@
         migrations.AlterField(
             model_name='token',
             name='refresh_token',
-            field=models.CharField(default='', max_length=255, unique=True, verbose_name='Refresh Token'),
+            field=models.CharField(default='', max_length=228, unique=True, verbose_name='Refresh Token'),
             preserve_default=False,
         ),
     ]
diff -ur oidc_provider.orig/models.py oidc_provider/models.py
--- oidc_provider.orig/models.py	2018-09-14 21:34:52.000000000 +0200
+++ oidc_provider/models.py	2020-06-07 13:34:26.830716635 +0200
@@ -67,8 +67,8 @@
         verbose_name=_(u'Client Type'),
         help_text=_(u'<b>Confidential</b> clients are capable of maintaining the confidentiality'
                     u' of their credentials. <b>Public</b> clients are incapable.'))
-    client_id = models.CharField(max_length=255, unique=True, verbose_name=_(u'Client ID'))
-    client_secret = models.CharField(max_length=255, blank=True, verbose_name=_(u'Client SECRET'))
+    client_id = models.CharField(max_length=228, unique=True, verbose_name=_(u'Client ID'))
+    client_secret = models.CharField(max_length=228, blank=True, verbose_name=_(u'Client SECRET'))
     response_types = models.ManyToManyField(ResponseType)
     jwt_alg = models.CharField(
         max_length=10,
@@ -78,15 +78,15 @@
         help_text=_(u'Algorithm used to encode ID Tokens.'))
     date_created = models.DateField(auto_now_add=True, verbose_name=_(u'Date Created'))
     website_url = models.CharField(
-        max_length=255, blank=True, default='', verbose_name=_(u'Website URL'))
+        max_length=228, blank=True, default='', verbose_name=_(u'Website URL'))
     terms_url = models.CharField(
-        max_length=255,
+        max_length=228,
         blank=True,
         default='',
         verbose_name=_(u'Terms URL'),
         help_text=_(u'External reference to the privacy policy of the client.'))
     contact_email = models.CharField(
-        max_length=255, blank=True, default='', verbose_name=_(u'Contact Email'))
+        max_length=228, blank=True, default='', verbose_name=_(u'Contact Email'))
     logo = models.FileField(
         blank=True, default='', upload_to='oidc_provider/clients', verbose_name=_(u'Logo Image'))
     reuse_consent = models.BooleanField(
@@ -186,12 +186,12 @@
 
     user = models.ForeignKey(
         settings.AUTH_USER_MODEL, verbose_name=_(u'User'), on_delete=models.CASCADE)
-    code = models.CharField(max_length=255, unique=True, verbose_name=_(u'Code'))
-    nonce = models.CharField(max_length=255, blank=True, default='', verbose_name=_(u'Nonce'))
+    code = models.CharField(max_length=228, unique=True, verbose_name=_(u'Code'))
+    nonce = models.CharField(max_length=228, blank=True, default='', verbose_name=_(u'Nonce'))
     is_authentication = models.BooleanField(default=False, verbose_name=_(u'Is Authentication?'))
-    code_challenge = models.CharField(max_length=255, null=True, verbose_name=_(u'Code Challenge'))
+    code_challenge = models.CharField(max_length=228, null=True, verbose_name=_(u'Code Challenge'))
     code_challenge_method = models.CharField(
-        max_length=255, null=True, verbose_name=_(u'Code Challenge Method'))
+        max_length=228, null=True, verbose_name=_(u'Code Challenge Method'))
 
     class Meta:
         verbose_name = _(u'Authorization Code')
@@ -205,8 +205,8 @@
 
     user = models.ForeignKey(
         settings.AUTH_USER_MODEL, null=True, verbose_name=_(u'User'), on_delete=models.CASCADE)
-    access_token = models.CharField(max_length=255, unique=True, verbose_name=_(u'Access Token'))
-    refresh_token = models.CharField(max_length=255, unique=True, verbose_name=_(u'Refresh Token'))
+    access_token = models.CharField(max_length=228, unique=True, verbose_name=_(u'Access Token'))
+    refresh_token = models.CharField(max_length=228, unique=True, verbose_name=_(u'Refresh Token'))
     _id_token = models.TextField(verbose_name=_(u'ID Token'))
 
     class Meta:
