Closed10
Bearer認証をOpenAPIで抱え込みたい
今現在、Vuexのactionで逐一トークンを取得してOpenAPIのfetch関数にリクエストヘッダーに入れろっつって渡してる
try {
const token = getToken()
if (!token) throw "トークンない"
const response = await new HogeApi(config).hogeIdGet({
authorization: `Bearer ${token}`,
id: payload.hogeId,
})
これをいい感じにOpenAPIで抱え込みたい
yamlに追加する
components:
# Bearer認証
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
get:
tags: [Account]
+ security:
+ - bearerAuth: []
summary: アカウント情報の取得
# 👇 正しくできたらこいつが不要になる
parameters:
- $ref: ../parameters/index.yml#/token
responses:
codegenしても何も差分が出ないので何か間違っている
ドキュメント読む
あー、いい感じにパスになるのか
componentの中で定義したものを自動で探してくれるらしい
components:
# Bearer認証
securitySchemes:
BearerAuth: # 👈 こいつを参照したけりゃコピる
get:
tags: [Account]
security:
- - bearerAuth: []
+ - BearerAuth: [] # 👈 componentsで定義した名前をここにペースト
summary: アカウント情報の取得
生成物に無事に差分が生まれた
+ if (this.configuration && this.configuration.accessToken) {
+ const token = this.configuration.accessToken;
+ const tokenString = await token("BearerAuth", []);
+
+ if (tokenString) {
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
+ }
+ }
これであとは 👇 こんな感じの変更を加えたらいい気がする多分
try {
const token = getToken()
if (!token) throw "トークンない"
+ config.token = token
const response = await new HogeApi(config).hogeIdGet({
- authorization: `Bearer ${token}`,
id: payload.hogeId,
})
TS側ではそこまで差がないんだけど、yamlファイル側でゴッソリ記述量が減る
あ、あとあれか
config内でそもそもgetToken()
すれば良くなるな、多分
そしたらTS側もゴッソリ減るな
try {
- const token = getToken()
- if (!token) throw "トークンない"
- config.token = token
const response = await new HogeApi(config).hogeIdGet({
authorization: `Bearer ${token}`,
id: payload.hogeId,
})
このスクラップは2022/06/15にクローズされました