私は別のWebサービスのアカウントを使ってFlaskアプリにログインできるようにしようとしています。私はこのWebサービスのAPIに連絡して、セキュリティトークンを受け取ることができます。制限付きビューにアクセスできるように、このトークンを使用してユーザーを認証するにはどうすればよいですか。Flaskでトークン認証をどのように実装しますか?
私は自分のデータベースにユーザーを保存する必要はありません。私はセッションのためにそれらを認証したいだけです。私はこれがFlask-Securityと@auth_token_requiredデコレータを使って行うことができると信じていますが、ドキュメンテーションはそれほど詳細ではなく、これを実装する方法がわかりません。
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