Quantcast
Viewing all articles
Browse latest Browse all 470

Postman でアクセストークンを自動更新する方法

Postman は refresh_token を使ってアクセストークンを自動更新してくれない ので、Pre-request Script で以下のように設定すると、 毎リクエストごとに更新スべきかチェックでき、必要だったら更新してからリクエストを送れるようにする。 使えるケースは限定的です。(認証が OAuth2 のときとか) var todayOfLastYear = new Date(new Date().getFullYear()-1, new Date().getMonth(), new Date().getDate()); // ここは適当。もし環境変数 OAuth_Timestamp に値がなければ使用される var tokenTimestamp = pm.environment.get("OAuth_Timestamp"); // 前回 access_token を取得した日時 var expiresInTime = pm.environment.get("ExpiresInTime") || (1000 * 60 * 60) - (1000 * 60); // 前回の access_token の期限切れ日時(環境変数 ExpiresInTime がなければ 59 分で設定している。ここは自由) var tokenDate = Date.parse(tokenTimestamp) || todayOfLastYear if((new Date() - tokenDate) >= expiresInTime) { pm.sendRequest({ url: pm.variables.get("Auth_Url"), method: 'POST', header: { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' }, body: { mode: 'urlencoded', urlencoded: [ {key: "grant_type", value: "refresh_token", disabled: false}, {key: "refresh_token", value: pm.environment.get("refresh_token"), disabled: false}, {key: "client_id", value: pm.environment.get("client_id"), disabled: false}, {key: "client_secret", value: pm.environment.get("client_secret"), disabled: false} ] } }, function (err, res) { pm.environment.set("access_token", res.json().access_token); pm.environment.set("OAuth_Timestamp", new Date()); if(res.json().expires_in){ expiresInTime = res.json().expires_in * 1000 - 60000; // res の expires_in から 1 分引いた時間にしている } pm.environment.set("ExpiresInTime", expiresInTime); }); }

Viewing all articles
Browse latest Browse all 470

Trending Articles