#python #jwt #token #flask-jwt
#python #jwt #токен #flask-jwt
Вопрос:
Я сохраняю идентификатор пользователя в токене, я аутентифицирую токен, а затем после получения идентификатора пользователя, подтверждающего, включен пользователь или нет в базе данных mysql. Итак, для других таблиц мне также нужен идентификатор пользователя для запросов к БД, так как я могу получить идентификатор пользователя в этих функциях? есть ли способ получить полезную нагрузку и получить идентификатор. Main.py
app.secret_key = "temp"
api = Api(app)
jwt = JWT(app,authenticate, identity) #/auth automatically
Security.py
def authenticate(username, password):
user = User.find_by_username(username)
if user and user.password == password:
return user
def identity(payload):
user_id = payload["identity"]
return User.find_by_userid(user_id)
Пользовательский файл
def find_by_userid(cls,_id):
#db connection
query = "select uid from users where uid= %s"
файл сообщения
#i want user id in this function as well
def fetch_msg_(cls,uid):
Комментарии:
1. Мне интересно, почему вы проверяете пользователя токена по базе данных. Вся идея JWTs заключается в том, чтобы предотвратить именно эти внешние издержки проверки.
2. У меня есть БД, в которой я внедрил разные таблицы, я сохраняю идентификатор пользователя в токене, поэтому, когда пользователь проходит аутентификацию, я извлекаю данные, связанные с идентификатором пользователя, теперь, если пользователь хочет видеть сообщения, он отправит другой запрос с токеном, а теперь для получения всех сообщений, связанных с конкретным пользователеммне нужен идентификатор пользователя. Я думаю, это понятно.