Как правильно завершить поток 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, но правильно ли я понимаю, что этот способ регистрации пользователя не является безопасным, поскольку я использую только электронную почту пользователя?
Как правильно это сделать?