-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtoken.js
More file actions
41 lines (35 loc) · 1.13 KB
/
token.js
File metadata and controls
41 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const request = require('request');
const querystring = require('querystring');
const client_id = process.argv[2];
const redirect_uri = process.argv[3];
const code = process.argv[4];
const code_verifier = process.argv[5];
if (!client_id || !redirect_uri || !code || !code_verifier) {
console.error('Please pass your client ID, your redirect URL, the code and the verifier (in that order) as arguments to this script');
process.exit(1);
}
const formData = querystring.stringify({
grant_type: 'authorization_code',
client_id,
code_verifier,
code,
redirect_uri
});
return request({
uri: 'https://login.clause.io/oauth/token',
method: 'POST',
headers: {
'Content-Length': formData.length,
'Content-Type': 'application/x-www-form-urlencoded'
},
body: formData
}, (error, {statusCode = 500, body = null}) => {
if (statusCode < 200 || statusCode > 299) {
console.error(body ? JSON.parse(body) : error);
return process.exit(1);
}
const {access_token, refresh_token} = JSON.parse(body);
console.log(`access_token: ${access_token}`);
console.log(`refresh_token: ${refresh_token || '(not in scope)'}`);
return;
});