現在、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 })
サーバーサイドの処理の流れとして、私の理解では以下になると思っています。(違ったら教えてほしいです)
- JSから /test が呼ばれ、 token_test関数へ入る
- Depends(Auth.scheme)から、**OAuth2PasswordBearer(tokenUrl="token")**が呼び出される
- 2の呼び出しにより**/token**が呼ばれ、token関数へ入る
- OAuth2PasswordRequestForm = Depends()?でformから認証情報取得して認証処理をする
FastAPIでBearer認証を導入する際、JS側からどのように OAuth2PasswordRequestForm に値を詰めてやればよいのでしょうか・・・?
参考サイトなどでも構いませんので、
お時間ある方で知識をお持ちの方いらっしゃいましたらご助力頂けますと幸いです。
追記
Python
1def token_test(token: str = Depends(Auth.scheme)): 2 print(token)
上記の出力結果が「Depends(OAuth2PasswordBearer)」だったが
tokenの値はどうやってとってくるんだ・・・?
回答1件
あなたの回答
tips
プレビュー