Я пытаюсь использовать токен для аутентификации пользователей.
Мне удалось заставить процесс работать, используя:
@login_manager.user_loader
def load_user(userid):
from models import User
return User.get(userid)
Однако я не знаю, как заставить процесс работать при использовании token
.
В моем файле views.py
у меня есть:
from flask import request, jsonify, url_for, render_template, session
@login_manager.token_loader
def load_token(token):
# Check token and return user
Когда я вхожу в систему пользователя:
def _do_login_user(user):
# User must have been authenticated
if not user: raise_error('user does not exist', 'A user with this email address does not exist', 404)
# Check if user account is enabled
if not user.is_active:
raise_error('inactive account', 'Your account has not been enabled. Check your email Inbox and Spam folders for the confirmation email', 401)
# Use Flask-Login to sign in user
login_user(user)
return json.dumps({"data":{"success":"true", "message":"You have logged in successfully!"}})
Модель пользователя
class User(db.Model, UserMixin):
def get_auth_token(self):
s = Serializer(app.config['SECRET_KEY'], expires_in = 6000)
return s.dumps({'id': self.id, 'password': self.password})
В какой момент я должен вызывать User.get_auth_token()
и должен ли я вручную устанавливать этот токен в session
?
Наконец, когда @login_manager.token_loader
вызывают?
Спасибо за вашу помощь.