spidey_v6

javascript

Oct 13th, 2019
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. const express = require('express');
  2. const router = express.Router();
  3. const fetch = require('node-fetch');
  4. const btoa = require('btoa');
  5. const { catchAsync } = require('../js/util');
  6. const User = require('../models/user');
  7. const notifier = require('../js/notifier');
  8.  
  9. const client_id = '601448212418789381';
  10. const client_secret = 'b5VpCrVE4cQNiBz8ckVtXKIO1yEs_wUp';
  11. const redirect = 'https%3A%2F%2Fthebox1.ml%2Fdiscordapi';
  12.  
  13. router.get('/', catchAsync(async (req, res) => {
  14. if (!req.query.code) throw new Error('NoCodeProvided');
  15.  
  16. const code = req.query.code;
  17. const creds = btoa(`${client_id}:${client_secret}`);
  18. const token = await callAPI(`https://discordapp.com/api/oauth2/token?grant_type=authorization_code&code=${code}&redirect_uri=${redirect}`, `Basic ${creds}`, 'POST');
  19. const user = await callAPI(`https://discordapp.com/api/users/@me`, `Bearer ${token.access_token}`, 'GET');
  20.  
  21. if (!user.username) return;
  22.  
  23. await User.findOne({username: user.username}, function(err, user) {
  24. if (err) throw err;
  25. if (user != null) {
  26. res.send('You have already registered!');
  27. return;
  28. }
  29. continueUserCreation();
  30. });
  31.  
  32. async function continueUserCreation() {
  33. var newUser = new User({
  34. username: user.username,
  35. verified: user.verified,
  36. locale: user.locale,
  37. mfa_enabled: user.mfa_enabled,
  38. id: user.id,
  39. avatar: user.avatar,
  40. discriminator: user.discriminator,
  41. });
  42.  
  43. await User.create(newUser, function(err, user) {
  44. if (err) throw err;
  45. });
  46.  
  47. notifier.emit('registeredUser', user);
  48.  
  49. console.log(`Registered: ${user.username}#${user.discriminator}`);
  50.  
  51. res.send(`Registered: ${user.username}#${user.discriminator}`);
  52. }
  53. }));
  54.  
  55. async function callAPI(url, auth, type) {
  56. const response = await fetch(url,
  57. {
  58. method: type,
  59. headers: {
  60. Authorization: auth,
  61. },
  62. });
  63. return await response.json();
  64. }
  65.  
  66. module.exports = router;
Add Comment
Please, Sign In to add comment