Здравствуйте, я реализовал систему аутентификации посредствам кукисов. При входе для пользователя генерируется токен и кладется с ключом на хранение. Когда пользователь заходит на страницу, которая должна запрещать вход пользователям, еще не вошедшим в систему, нужно редиректнуть или совершить какие-либо другие действия.
Вот как выглядит код:
authorization = False
cookie_key = request.cookies.get(self.cookie_key)
try:
jwt.decode(cookie_key, self.secret, self.algorithm)
authorization = True
except jwt.exceptions.DecodeError:
pass
return authorization
Здесь осуществляется декодирование токена, лежащего в сессии. Если токен неправильный, то системе сразу понятно, что пользователь не вошел в систему. Так как токен может генерироваться только в коде посредствам секретного ключа, то сгенерировать "подставной" токен с несуществующим в базе именем невозможно.
В коде многих других людей я видел следующую проверку:
payload = jwt.decode(cookie_key, self.secret, self.algorithm)
username = payload.get['sub']
user = db.get(username)
if not user:
pass
Есть ли от нее смысл?