그래서 토큰 기반 인증 마이크로 서비스에 대해 인증을 시도하고 있습니다.저장 및 Django에서 요청 개체를 통해 토큰을 전달하는 방법?
나는 이것이 이상적이지 않다는 것을 알고 있지만, 시작하기 위해 나는이 빠른 미들웨어를 작성했다.
middleware.py
def process_request(self, request):
if request.token = None:
pass
else:
username = validate_token(request.token)
request.username = username
views.py
def login(request):
form = LoginForm()
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
my_token = authservice_login(user,pass)
request.token = my_token
누군가가 로그인하고 토큰이 반환되면 내 질문입니다, 어떻게 모든 요청 사이의 지속이 토큰을 유지합니까? 나는 Django 요청 객체에 대해 다소 안개가 낀다고 생각한다. 로그인 한 다음 다른보기가 호출되는 다른 페이지로 이동하면 로그인 할 때 생성 한 request.token에 계속 액세스 할 수 있습니까?
내가 생각하기에 이상적인 것은 미들웨어를 통해 모든 요청에이 토큰을 전달하는 로그인 후입니까?
Django에 내장 된 사용자 객체를 무시하고 있습니다. – david
간단히 말해서 토큰을 "보관"하는 방법이 필요합니다. 왜냐하면 토큰은 인증 서비스에 의해서만 생성되고 반환되기 때문에 모든 요청을 통해 토큰을 유지하고 전달해야합니다. – david
Django에 내장 된 사용자 객체를 우회하는 것은 좋은 생각이 아니라고 생각합니다. 많은 일반적인 작업을 재발 명해야합니다. 3d 파티의 인증 서비스는'django.contrib.auth'와 통합 될 수 있습니다. 그럼에도 불구하고 여전히 자신의 방식으로 작업하는 것을 선호하는 경우 세션을 사용하여 토큰을 유지하거나 토큰을 클라이언트에 반환 한 다음 각 요청과 함께 세션을 전달할 수 있습니다. 후자의 두 가지 방법 모두 보안에 특별한주의가 필요합니다. 그러나 이것은 또 다른 주제입니다. 안녕하세요, 마이크로 서비스를 구축하는 경우 http://www.django-rest-framework.org/에주의하시기 바랍니다. – abcdn