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