Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 5x 5x 5x 5x 5x 5x 5x | 'use strict'
const router = require('koa-router')()
var passport = require('koa-passport')
var config = require('../../config/env')
var auth = require('../auth.service')
const debug = require('../../util/debug')('auth:qq')
router
.get('/', auth.snsPassport(), passport.authenticate('qq', {
failureRedirect: '/',
session: false,
}))
.get('/callback', async(ctx, next) => {
await passport.authenticate('qq', { session: false }, function (err, user, redirectURL) {
debug('qq auth callback start')
const redirectUrl = ctx.session.passport.redirectUrl || '/'
const cookieDomain = config.session.cookie.domain || null
let snsmsg = {}
if (err || !user) {
snsmsg.msg = 'login failure'
snsmsg.msgtype = 'error'
} else {
snsmsg.msgtype = 'success'
snsmsg.msg = 'login success!'
const token = auth.signToken(user._id)
debug('set cookie token')
ctx.cookies.set('token', token, { signed: false, domain: cookieDomain, httpOnly: false })
}
ctx.cookies.set('snsmsg', JSON.stringify(snsmsg), { signed: false, domain: cookieDomain, httpOnly: false, maxAge: 30000 })
return ctx.redirect(redirectUrl)
})(ctx)
})
module.exports = router |