Um auf der REST API via OAuth 2.0 einen Request in einem Schritt ausführen zu können, wird ein "Pre-request Script" gebraucht, welcher den Bearer Token vor dem gewünschten Request löst.
Für die Authentisierung müssen im Script 3 Variablen mitgegeben werden:
const echoPostRequest = { url: 'AUTH_URL', method: 'POST', header: 'Content-Type:application/json', body: { mode: 'application/json', raw: JSON.stringify( { client_id:'CLIENT_ID', client_secret:'CLIENT_SECRET', grant_type:'client_credentials' }) } }; var getToken = true; if (!pm.environment.get('accessTokenExpiry') || !pm.environment.get('currentAccessToken')) { console.log('Token or expiry date are missing') } else if (pm.environment.get('accessTokenExpiry') <= (new Date()).getTime()) { console.log('Token is expired') } else { getToken = false; console.log('Token and expiry date are all good'); } if (getToken === true) { pm.sendRequest(echoPostRequest, function (err, res) { console.log(err ? err : res.json()); if (err === null) { console.log('Saving the token and expiry date') var responseJson = res.json(); pm.environment.set('currentAccessToken', responseJson.access_token) var expiryDate = new Date(); expiryDate.setMilliseconds(expiryDate.getMilliseconds + responseJson.expires_in); pm.environment.set('accessTokenExpiry', expiryDate.getTime()); } }); } |
Der mit dem Script gelöste Bearer Token wird in der Postman Variable {{currentAccessToken}} abgelegt. Diese Variable muss unter 'Authorization' mit 'Type = Bearer Token' hinterlegt werden.
Anwendungsbeispiel: