質問するログイン新規登録

Q&A

解決済

1回答

2387閲覧

【FastAPI・Bearer認証】JS(axios) からOAuth2PasswordRequestForm へ値を詰める方法が分かりません。

pekopekoapricot

総合スコア24

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/10/26 06:02

編集2020/10/26 07:41

0

0

現在、FastAPIとaxiosを使用してAPIを実装していますが、そこにBearer認証を取り入れようとしています。

Python側で下記のように記載したのですが、このOAuth2PasswordRequestForm?への値の詰め方が分かりませんでした。

Python

1class API: 2 @APIServer.app.get('/test') 3 def token_test(token: str = Depends(Auth.scheme)): 4 return { 5 "status": True, 6 "messeage": "TEST OK", 7 } 8 9class Auth: 10 scheme = OAuth2PasswordBearer(tokenUrl="token") 11 12 @APIServer.app.post('/token') 13 async def token(response: Response, form: OAuth2PasswordRequestForm = Depends()): 14 """ このformからclient_secretの値を取得できるようにしたい """ 15 token_check(form.client_secret) 16

JS

1axios.get('/test', { 2 headers: { 3 Authorization: "Bearer: test" // ここらへんでどうにか値を詰める? 4 } 5 }) 6 .then(res => { 7 // API成功時の処理 8 })

サーバーサイドの処理の流れとして、私の理解では以下になると思っています。(違ったら教えてほしいです)

  1. JSから /test が呼ばれ、 token_test関数へ入る
  2. Depends(Auth.scheme)から、**OAuth2PasswordBearer(tokenUrl="token")**が呼び出される
  3. 2の呼び出しにより**/token**が呼ばれ、token関数へ入る
  4. OAuth2PasswordRequestForm = Depends()?でformから認証情報取得して認証処理をする

FastAPIでBearer認証を導入する際、JS側からどのように OAuth2PasswordRequestForm に値を詰めてやればよいのでしょうか・・・?
参考サイトなどでも構いませんので、
お時間ある方で知識をお持ちの方いらっしゃいましたらご助力頂けますと幸いです。


追記

Python

1def token_test(token: str = Depends(Auth.scheme)): 2 print(token)

上記の出力結果が「Depends(OAuth2PasswordBearer)」だったが
tokenの値はどうやってとってくるんだ・・・?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1

0

自己解決

JS

1TOKEN = 'XXXXX' 2// この書き方じゃないとPOST通信時に認証通らない 3axios.defaults.headers.common['Authorization'] = "Bearer " + TOKEN;

投稿2020/10/27 23:55

pekopekoapricot

総合スコア24

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問