Как правильно завершить поток OAuth2 в Django?

Если говорить коротко, то я получил все необходимые токены от Google, используя поток «auth code».

Итак, на данный момент в моем распоряжении находятся следующие жетоны:

1. access_token
2. refresh_token
3. id_token
4. verified JWT token

Следующим шагом будет вход пользователя в систему с помощью предоставленного метода login() из django.contrib.auth. При этом создается sessionId, который затем используется для «проверки» того, что пользователь вошел в систему.

В моей текущей системе разработки я просто использую email из токена JWT для создания сессии:

from django.contrib.auth import login
from django.contrib.auth.models import User

def login_provider(request):
    # 1. Get the user info from JWT token (assume I have it)
    user_obj = jwt_token.user
   
    # 2. Create a Django user instance
    user, created = User.objects.get_or_create(email=user_obj.email)
    
    # 3. Log the user in
    login(request, user)
    
    # 4. Redirect the user somewhere else
    return redirect("somewhere-else/")

Я предпринял все необходимые шаги для обеспечения безопасности части потока Google OAuth2, но правильно ли я понимаю, что этот способ регистрации пользователя не является безопасным, поскольку я использую только электронную почту пользователя?

Как правильно это сделать?

Вернуться на верх