-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
41 lines (36 loc) · 1.2 KB
/
server.js
File metadata and controls
41 lines (36 loc) · 1.2 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 express = require('express');
const axios = require('axios');
const Store = require('electron-store');
const app = express();
const store = new Store();
require('dotenv').config();
app.get('/callback', async (req, res) => {
const code = req.query.code || null;
if (!code) {
res.send('No code found');
return;
}
try {
const response = await axios.post('https://accounts.spotify.com/api/token', new URLSearchParams({
grant_type: 'authorization_code',
code: code,
redirect_uri: process.env.SPOTIFY_REDIRECT_URI,
client_id: process.env.SPOTIFY_CLIENT_ID,
client_secret: process.env.SPOTIFY_CLIENT_SECRET,
}), {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
store.set('access_token', response.data.access_token);
store.set('refresh_token', response.data.refresh_token);
console.log('Access Token saved.');
res.send('Logged in! You can close this window.');
} catch (error) {
console.error('Error exchanging code for token:', error.response?.data || error.message);
res.send('Error getting tokens.');
}
});
app.listen(8888, () => {
console.log('Listening on http://127.0.0.1:8888');
});