2 つの Web アプリケーションがあります。1つはウェブサイトです。もう 1 つは API です。どちらもフラスコを使用して構築されています。それらは異なる認証方法を使用します。
この Web サイトでは、flask-login ライブラリを使用しています。具体的には、フォームによって提供されたlogin_user
場合に使用されます。user.check_password
API は、暗号署名されたトークンを使用します。この API は、モバイル アプリケーション (ios など) で使用されます。/api/login
これらのアプリケーションは、Web サイトで期待されるのと同じユーザー名とパスワードを呼び出してPOST します。その後、API は、アプリが保存して将来の認証に使用するトークンを返します。トークンは危険なライブラリを使用して生成されます。具体的には、 を使用して作成されTimedJSONWebSignatureSerializer
ます。
現在、Web サイトのページの 1 つが API にアクセスする必要があるという混乱した問題が発生しています。もちろん、ユーザーは適切に生成された認証トークンを持っていないため、API はアクセスを許可しません。コードのすべての部分を制御できますが、この場合の最も洗練されたソリューションが何であるかはわかりません。いずれかの認証メカニズムの使用を停止する必要がありますか? Web サイト ユーザーの API 認証トークンを何らかの方法で保存する必要がありますか?
アドバイスをいただければ幸いです。
更新 この問題について考えていると、login_user が使用するトークン生成プロセスを変更できることがわかりました。login_user が API と同じトークンを使用した場合、おそらく、ユーザーが Web サイト経由で API リクエストを行う必要があるときはいつでも、セッションからトークンを取得できます。これが正気かどうかはまだはっきりしていません。