Я написал REST API для входа в систему и выхода из нее с помощью flask-restplus и flask_jwt_extended, я реализовал генерацию jwt access_token, которая работает без проблем, но теперь мне нужно сохранить токен в cookie.
мой код выглядит так:
API / пользователь / resource.py
from app.auth_helper import Auth
from flask_restplus import Resource
from flask import request
@user_api_ns.route("/login")
class LoginUser(Resource):
post_data = request.json
return Auth.login_user(data=post_data)
auth_helper.py
import datetime
from flask_jwt_extended import create_access_token
from flask import jsonify
def encode_auth_token(user):
access_token = create_access_token(identity=user, fresh=True, expires_delta=datetime.timedelta(days=1, seconds=5))
class Auth(object):
@staticmethod
def login_user(data):
try:
auth_token = encode_auth_token(data.get("username"))
if auth_token:
response_object = jsonify({'status': 'success', 'Authorization': auth_token.decode()})
set_access_token(response_object, auth_token)
return response_object, 200
except Exception as er:
print er
return {"status": "fail"}, 401
Но приведенный выше кодвыдает ошибку:
TypeError: <Response 367 bytes [200 OK]> is not JSON serializable
если я не использую jsonify (..), я получаю ошибку dict object does not have set_cookie attribute
, что вполне очевидно, поскольку set_access_cookie
ожидает, что объект ответа не является обычным dict