This repository was archived by the owner on Jan 22, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
191 lines (137 loc) · 4.56 KB
/
server.js
File metadata and controls
191 lines (137 loc) · 4.56 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
/**
* @author SilverCore
* @author SilverAuth
* @author MisterPapaye
*/
console.log('Démarrage du serveur...');
// Importation des bibliothèques
const express = require("express");
const http = require("http");
const fs = require("fs");
const cookieParser = require('cookie-parser');
const axios = require('axios');
const cors = require('cors');
const config = require('./config.json');
// SSL key & cert path
// const options = {
// key: fs.readFileSync(config.SSLkeyPath, "utf8"),
// cert: fs.readFileSync(config.SSLcertPath, "utf8"),
// };
// importation des roots
const root_api = require('./roots/api.js');
const root_popup = require('./roots/popup.js');
const root_dev = require('./src/devaccess/devroots.js');
const root_auth = require('./roots/auth.js');
const root_user = require('./roots/user.js');
const root_panel = require('./roots/panel.js');
const root_skinapi = require('./roots/skinapi.js');
const roots = {
"api": root_api,
"skinapi": root_skinapi,
"popup": root_popup,
"auth": root_auth,
"user": root_user,
"panel": root_panel,
"dev": root_dev
};
// gestion des databases
const connection = require('./src/database/database.js');
const path = require("path");
connection.query('SELECT 1 + 1 AS test', (err, results) => {
if (err) {
console.error('❌ Erreur de requête test:', err);
return;
}
console.log('✅ Test réussi, résultat:', results);
});
// divers var
// const DB_FILE = config.db.DefaultFile;
// const KEY_DB_FILE = config.db.KeyFile;
// initialisation de express
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser());
app.use([
'/auth/verify',
'/auth/logout'
], cors());
console.log("Server express démarer !");
app.set("view engine", "ejs");
app.use(express.static("public"));
// roots
app.use('/api', roots.api);
app.use('/api/skin', roots.skinapi);
app.use('/auth', roots.auth);
app.use('/popup', roots.popup);
app.use('/user', roots.user);
app.use('/panel', roots.panel);
app.use('/dev', roots.dev);
app.get('/exemple/site', (req, res) => {
if (req.query.source === "code") {
return res.sendFile(path.join( __dirname, 'public', 'example_site', `index_code.html` ));
}
res.sendFile(path.join( __dirname, 'public', 'example_site', `index.html` ));
});
app.get('/exemple/site/callback', (req, res) => {
if (req.query.source === "code") {
return res.sendFile(path.join( __dirname, 'public', 'example_site', `callback_code.html` ));
}
res.sendFile(path.join( __dirname, 'public', 'example_site', `callback.html` ));
});
app.get('/favicon.ico', (req, res) => {
res.redirect('https://api.silverdium.fr/img/auth/favicon.ico');
});
app.get('/assets/:dir/:file', (req, res) => {
const dir = req.params.dir;
const file = req.params.file;
const ext = req.query.ext;
res.sendFile(path.join( __dirname, 'assets', dir, `${file}.${ext}` ))
});
app.get('/doc', (req, res) => {
res.sendFile(path.join(__dirname, 'public/doc/index.html'))
})
app.get('/asset/css/btn', (req, res) => {
res.sendFile(path.join(__dirname, 'assets/css/docbtn.css'))
})
app.get('/btn', (req, res) => {
res.send(`<link rel="stylesheet" href="/asset/css/btn">
<button onclick="silverauthPopup()" class="sauth-login-button">
<img src="https://api.silverdium.fr/img/auth/logo.png">
<span>Se connecter avec SilverAuth</span>
</button>`)
})
app.get('/user/:go', (req, res) => {
const go = req.params.go;
if (go === 'profile' ) {
res.sendFile( path.join( __dirname, 'public/panel/user/profile.html' ) );
}
else {
res.status(404).render('error/404');
};
});
app.get('/getipV4', async (req, res) => {
try {
// Utiliser axios pour obtenir l'IP publique via ipify
const response = await axios.get("https://api4.ipify.org?format=json");
const userIp = response.data.ip; // Récupérer l'IP depuis la réponse
// Envoyer l'IP de l'utilisateur dans la réponse
res.json({ ip: userIp });
} catch (error) {
// En cas d'erreur, renvoyer un message d'erreur
res.status(500).json({ error: "Impossible de récupérer l'adresse IP" });
}
});
// const key = require('./src/database/apikey.js');
// async function d() {
// await key.GetKeys(27).then(res => console.log(res))
// }
// d()
// return
app.use((req, res) => {
res.status(404).render('error/404');
});
const PORT = 8456;
http.createServer(app).listen(PORT, () => {
console.log(`Serveur HTTPS en ligne sur localhost:${PORT}`);
});