I'm making a web app with a microservice architecture. When it comes to login I want to redirect the successfully logged in user to his dashboard (which is on another microservice). I have a problem with passing parameters such as name, surname, email, and token.
microservice 1 (views.py):
class SignInView(viewsets.ViewSet):
def post(self, request):
email = request.data['email']
password = request.data['password']
user = User.objects.filter(email=email).first()
print(bool(user.is_coordinator))
if user is None:
messages.error(request, 'User not found. Please try again')
return HttpResponseRedirect('/sign-in')
if not user.check_password(password):
messages.error(request, 'Invalid password. Please try again')
return HttpResponseRedirect('/sign-in')
payload = {
'id': user.id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60),
'iat': datetime.datetime.utcnow()
}
token = jwt.encode(payload, 'secret', algorithm='HS256')
response = Response()
response.set_cookie(key='jwt', value=token, httponly=True)
response.data = ({
'jwt': token
})
if user.is_coordinator:
return redirect('http://127.0.0.1:8001/dashboard-coordinator')
else:
return HttpResponseRedirect('http://127.0.0.1:8001/dashboard-employee', {'name': user.name, 'surname': user.surname, 'email': user.email, 'response.data': response.data})
...
microservice 2 (views.py):
class HomeView(viewsets.ViewSet):
def get(self, request):
return render(request, 'dashboard-employee.html', {'name': name, 'surname': surname, 'email': email, 'response.data': response.data})
What I've included in microservice 2 does not work. How can I get and process params from microservice 1? Is there any better solution/approach?