-
Notifications
You must be signed in to change notification settings - Fork 561
/
Copy pathOAuth.js
49 lines (45 loc) · 1.27 KB
/
OAuth.js
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
42
43
44
45
46
47
48
49
'use strict'
const config = require('../config')
const request = require('request-promise')
const errorHandler = require('./ErrorHandler')
const requestGitHubAccessToken = (code, clientId, clientSecret, redirectUri) => {
return request({
headers: {
'Accept': 'application/json'
},
json: true,
method: 'POST',
uri: config.get('githubAccessTokenUri'),
qs: {
code,
client_id: clientId,
client_secret: clientSecret,
redirect_uri: redirectUri
}
})
.then(res => res.access_token)
.catch(err => Promise.reject(errorHandler('GITHUB_AUTH_FAILED', {err}))) // eslint-disable-line handle-callback-err
}
const requestGitLabAccessToken = (code, clientId, clientSecret, redirectUri) => {
return request({
headers: {
'Accept': 'application/json'
},
json: true,
method: 'POST',
uri: config.get('gitlabAccessTokenUri'),
qs: {
code,
client_id: clientId,
client_secret: clientSecret,
grant_type: 'authorization_code',
redirect_uri: redirectUri
}
})
.then(res => res.access_token)
.catch(err => Promise.reject(errorHandler('GITLAB_AUTH_FAILED', {err}))) // eslint-disable-line handle-callback-err
}
module.exports = {
requestGitHubAccessToken,
requestGitLabAccessToken
}