Я пытаюсь разрешить пользователям входить в мое приложение Flask, используя их учетные записи из отдельной веб-службы. Я могу связаться с api этого веб-сервиса и получить токен безопасности. Как использовать этот токен для аутентификации пользователей, чтобы они имели доступ к ограниченным представлениям?Как реализовать аутентификацию токена в Flask?
Мне не нужно сохранять пользователей в мою собственную базу данных. Я только хочу, чтобы они были аутентифицированы для сеанса. Я считаю, что это можно сделать, используя Flask-Security и @auth_token_required decorator, но документация не очень детализирована, и я не уверен, как это реализовать.
EDIT:
Вот пример кода:
@main.route("/login", methods=["GET", "POST"])
def login():
payload = {"User": "john", "Password": "password123"}
url = "http://webserviceexample/api/login"
headers = {'content-type': 'application/json'})
#login to web service
r = requests.post(url, headers=headers, json=payload)
response = r.json()
if (r.status_code is 200):
token = response['user']['authentication_token']
# allow user into protected view
return render_template("login.html", form=form)
@main.route('/protected')
@auth_token_required
def protected():
return render_template('protected.html')
Вам необходимо сохранить пользователей с помощью токена; и подтвердите действительность токена в отношении услуги. В противном случае вам придется каждый раз проверять подлинность посетителей в отношении стороннего сервиса, когда они начинаются. –
Каждый раз вы имеете в виду каждую сессию? Если это так, это прекрасно, что им придется снова аутентифицироваться. Есть ли причина, по которой это будет проблемой? – Amerikaner