auth: login through vk iframe

This commit is contained in:
muerwre 2018-12-10 15:27:17 +07:00
parent 28dc2bec8b
commit 75505656df
6 changed files with 39 additions and 7 deletions
backend/routes
auth.js
auth/iframe

View file

@ -3,6 +3,7 @@ const guest = require('./auth/guest');
const list = require('./auth/list');
const check = require('./auth/check');
const vk = require('./auth/social/vk');
const iframe_vk = require('./auth/iframe/vk');
const router = express.Router();
@ -10,5 +11,6 @@ router.get('/', check);
router.get('/list', list);
router.get('/guest', guest);
router.get('/social/vk', vk);
router.get('/iframe/vk', iframe_vk);
module.exports = router;

View file

@ -0,0 +1,18 @@
const { User } = require('../../../models');
const { CONFIG } = require('../../../../config/backend');
const md5 = require('js-md5');
const { generateRandomUrl } = require('../guest');
module.exports = async (req, res) => {
const { query: { viewer_id, auth_key } } = req;
const checksum = md5(`${CONFIG.SOCIAL.VK_IFRAME.APP_ID}_${viewer_id}_${CONFIG.SOCIAL.VK_IFRAME.SECRET}`);
if (checksum !== auth_key) return res.send({ success: false, error: 'cant login or no such user' });
const user = await User.findOne({ _id: `vk:${viewer_id}` }).populate('routes');
const random_url = await generateRandomUrl();
return res.send({ success: true, user: { ...user.toObject(), id: user._id, random_url } });
};