Flask RESTful APIを作成しました。これには、メール/パスワードとFacebookログインフローが必要です。今後、ソーシャルログインをサポートするために、これを拡張する必要があるでしょう。
JWTを使用してユーザーを認証することを選択しました。
複数のタイプのログインフローをサポートしたいので、ログインのタイプごとにカスタム許可タイプを定義する必要があると考えました。
Flask-JWT を確認しましたが、これは、更新トークンの場合でも、カスタムの付与タイプをサポートしていないようです。
別のFlask JWT実装を見つけることができなかったため、自分でコードを記述する必要がありました。私のコードは機能しますが、Flask私の要件を満たすプラグイン。
免責事項:それは答えよりもコメントですが、より多くのスペースが必要でした。
まず、JWTは単純ですが、OAuth2フローは複雑で扱いにくい傾向があります。 Google、Facebookなどを使用して認証するため、通常は直接トークンを受け取りません。
...また、多くのプロバイダーが処理方法を少しずつ異なるという意味で厄介な場合もあります。プロバイダーごとに、秘密鍵のペアを登録して保存する必要があります。
正直なところ、これは面倒なので、次のようなサードパーティのサービスを使用することをお勧めします https://auth0.com/
更新:その間、私はOAuthライブラリが進歩し、auth0.comのサービスがより多くなる一方で、よりシンプルになったように感じますですから、多くの認証プロバイダーをサポートする必要がある場合を除いて、コードライブラリを直接使用することをお勧めします。
フローは同じですが、少なくとも合理化されています。 (そして、私は彼らとは何の関係もありません)