78 lines
No EOL
2.4 KiB
JavaScript
78 lines
No EOL
2.4 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const request = require('request');
|
|
const serverConfig = require("./serverConfig.json");
|
|
const CLIENT_ID = serverConfig.CLIENT_ID;
|
|
const CLIENT_SECRET = serverConfig.CLIENT_SECRET;
|
|
const REDIRECT_URI = serverConfig.REDIRECT_URI;
|
|
const TOKEN_URL = "https://www.googleapis.com/oauth2/v4/token";
|
|
|
|
router.get("/", (req, res) => {
|
|
res.send("test");
|
|
})
|
|
|
|
|
|
router.post("/request_token", (req, res) => {
|
|
const refresh_token = req.body.refresh_token;
|
|
const oAuthInfo = {
|
|
client_id: CLIENT_ID,
|
|
client_secret: CLIENT_SECRET,
|
|
refresh_token: refresh_token,
|
|
grant_type: "refresh_token"
|
|
}
|
|
request({
|
|
uri: TOKEN_URL,
|
|
method: "POST",
|
|
json: true,
|
|
body: oAuthInfo
|
|
}, (error, response) => {
|
|
if (error) {
|
|
const responseObject = {
|
|
status: "error",
|
|
errorText: `Refreshing Oauth Token with Google`
|
|
};
|
|
res.statusCode = 500;
|
|
res.setHeader('Content-Type', 'application/json');
|
|
return res.end(JSON.stringify(responseObject));
|
|
} else {
|
|
response.body.status = "success"
|
|
res.statusCode = 200;
|
|
res.setHeader('Content-Type', 'application/json');
|
|
return res.end(JSON.stringify(response.body));
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
router.post("/exchangeCode", (req, res) => {
|
|
const code = req.body.code;
|
|
request({
|
|
uri: TOKEN_URL,
|
|
method: "POST",
|
|
json: true,
|
|
body: {
|
|
client_id: CLIENT_ID,
|
|
client_secret: CLIENT_SECRET,
|
|
redirect_uri: REDIRECT_URI,
|
|
grant_type: "authorization_code",
|
|
code: code
|
|
}
|
|
}, (error, response) => {
|
|
if (error) {
|
|
const responseObject = {
|
|
status: "error",
|
|
errorText: `Problem getting back token`
|
|
};
|
|
res.statusCode = 500;
|
|
res.setHeader('Content-Type', 'application/json');
|
|
return res.end(JSON.stringify(responseObject));
|
|
} else {
|
|
response.body.status = "success"
|
|
res.statusCode = 200;
|
|
res.setHeader('Content-Type', 'application/json');
|
|
return res.end(JSON.stringify(response.body));
|
|
}
|
|
})
|
|
})
|
|
|
|
module.exports = router; |