def post(self, request): data = yield from request.read() log.debug('{0}: {1}'.format(request, data)) if not data: return self.error_bad_request('Empty request') data = yield from request.json() email = data['email'] password = data['password'] try: user = User.login(email, password) except (EmailNotVerifiedException, InvalidPasswordException) as exc: return self.error_forbidden(exc) reply = dict( success=True, jwt=jwt_encode(email) ) return web.Response(body=json.dumps(reply).encode('utf-8'))