WIP
This commit is contained in:
48
server/routes/validate.js
Normal file
48
server/routes/validate.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const express = require('express');
|
||||
const admin = require('firebase-admin');
|
||||
const router = express.Router();
|
||||
|
||||
const route = function(db) {
|
||||
router.post('/', function(req, res, next) {
|
||||
const passcode = req.body.passcode;
|
||||
const uid = req.body.uid;
|
||||
const passcodeRef = db.ref('server/passcode');
|
||||
passcodeRef.once('value', function(s) {
|
||||
if (!uid) {
|
||||
return res.status(400).json({
|
||||
error: 'No UID',
|
||||
});
|
||||
}
|
||||
const valid = passcode === s.val();
|
||||
const userRef = db.ref(`users/${uid}`)
|
||||
.set({
|
||||
isAdmin: false,
|
||||
isAnonymous: true,
|
||||
approved: valid,
|
||||
});
|
||||
if (valid) {
|
||||
admin.auth().createCustomToken(uid, {
|
||||
approved: true,
|
||||
}).then(function(customToken) {
|
||||
return res.json({
|
||||
valid: true,
|
||||
token: customToken,
|
||||
});
|
||||
}).catch(function(err) {
|
||||
console.error('Error creating custom token', err);
|
||||
return res.status(500).json({
|
||||
error: 'Internal server error',
|
||||
});
|
||||
});
|
||||
} else {
|
||||
return res.json({
|
||||
valid: false,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return router;
|
||||
}
|
||||
|
||||
module.exports = route;
|
||||
Reference in New Issue
Block a user