From fafb8cf5f96712b01187ab8f9278f3a98484df88 Mon Sep 17 00:00:00 2001 From: sosokker Date: Thu, 2 Nov 2023 01:03:45 +0700 Subject: [PATCH] Add Save refresh_token in user db --- .../0002_customuser_refresh_token.py | 18 ++++++++++++++++++ backend/users/models.py | 3 +++ backend/users/views.py | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 backend/users/migrations/0002_customuser_refresh_token.py diff --git a/backend/users/migrations/0002_customuser_refresh_token.py b/backend/users/migrations/0002_customuser_refresh_token.py new file mode 100644 index 0000000..25d9215 --- /dev/null +++ b/backend/users/migrations/0002_customuser_refresh_token.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.6 on 2023-11-01 17:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='customuser', + name='refresh_token', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/backend/users/models.py b/backend/users/models.py index e473572..64d976d 100644 --- a/backend/users/models.py +++ b/backend/users/models.py @@ -19,6 +19,9 @@ class CustomUser(AbstractBaseUser, PermissionsMixin): # Custom manager objects = CustomAccountManager() + # Google API + refresh_token = models.CharField(max_length=255, blank=True, null=True) + # Fields for authentication USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username', 'first_name'] diff --git a/backend/users/views.py b/backend/users/views.py index 3ffb3e9..591c609 100644 --- a/backend/users/views.py +++ b/backend/users/views.py @@ -159,11 +159,14 @@ class GoogleRetrieveUserInfo(APIView): """Get or create a user based on email.""" try: user = CustomUser.objects.get(email=user_info['email']) + user.refresh_token = user_info['refresh_token'] + user.save() except CustomUser.DoesNotExist: user = CustomUser() user.username = user_info['email'] user.password = make_password(CustomAccountManager().make_random_password()) user.email = user_info['email'] + user.refresh_token = user_info['refresh_token'] user.save() return user