1 | const google = require('googleapis')
|
2 | const OAuth2 = google.auth.OAuth2
|
3 | const inquirer = require('inquirer')
|
4 | const db = require('./db')
|
5 |
|
6 | async function getCredentials () {
|
7 | let cred = db.get('credentials.web').value()
|
8 | if (!cred) {
|
9 | let answers = await inquirer.prompt([{
|
10 | type: 'input',
|
11 | name: 'client_id',
|
12 | message: 'client_id'
|
13 | }, {
|
14 | type: 'input',
|
15 | name: 'client_secret',
|
16 | message: 'client_secret'
|
17 | }, {
|
18 | type: 'input',
|
19 | name: 'redirect_uris',
|
20 | message: 'redirect_uris',
|
21 | default: 'http://localhost:3000/callback'
|
22 | }])
|
23 |
|
24 | let { client_id, client_secret, redirect_uris } = answers
|
25 | let web = {
|
26 | client_id,
|
27 | client_secret,
|
28 | redirect_uris: [redirect_uris]
|
29 | }
|
30 | db.set('credentials.web', web).write()
|
31 |
|
32 | return web
|
33 | } else {
|
34 | return cred
|
35 | }
|
36 | }
|
37 |
|
38 | module.exports = async function () {
|
39 | const client = await getCredentials()
|
40 | const oauth2Client = new OAuth2(
|
41 | client.client_id,
|
42 | client.client_secret,
|
43 | client.redirect_uris[0]
|
44 | )
|
45 |
|
46 | return oauth2Client
|
47 | }
|