Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// return res.status(401).json({ error: info });
}
var expires = moment().add(7, 'days').valueOf()
var token = jwt.encode(
{
iss: user.id,
exp: expires,
username: user.username,
name: user.name,
email: user.email,
role: user.role
},
secret
)
var cookies = new Cookies(req, res, {
secure: config.cookie.secure
})
cookies.set('x-access-token', token)
var username = ''
if (user && user.username) {
username = user.username
}
Manager.instance.events.activity.emit('activity', {
operation: 'connect',
post: '',
user: username
})
res.redirect('/abe/editor/')
})(req, res, next)
})
function verifyToken(req, res, next) {
const cookies = new Cookies(req, res, { keys: [process.env.COOKIE_SECRET] })
const session = createUserSession(cookies)
Object.assign(req, { session })
if (!cookies.accessToken) {
next()
return
}
verifyAccessToken(cookies.accessToken)
.then(() => next())
.catch((err) => {
// eslint-disable-next-line no-undef
log(err)
session.resetUser()
next()
})
constructor(ctx) {
super(ctx)
const { ws, req } = ctx
// this.$axios = $axios
// this.$axios = $axios
const cookies = Cookies(req)
// Get jwt cookie
const jwt = cookies.get('jwt')
this.$axios.setToken(jwt, 'Bearer')
}
app.get('/*', async (req, res, next) => {
const css = new Set();
let context = {};
try {
context = await createWebStore({
cookieJar: new NodeCookiesWrapper(new Cookies(req, res)),
insertCss: (...styles) => {
return styles.forEach(style => css.add(style._getCss()));
},
location: req.url
});
context.persistor = await new Promise(resolve => {
const { store } = context;
const persistor = persistStore(store, config.initialState, () => {
return resolve(persistor);
});
});
initialProps.context = context;
initialProps.location = context.location;
const appHtml = renderToString();
// const appCss = renderToStaticMarkup(getStyleElement());
const $ = cheerio.load(indexHtml);
server.use((req, res) => {
let cookies = new Cookies(req, res);
let token = cookies.get('token') || uuid();
cookies.set('token', token, {maxAge: 30 * 24 * 60 * 60});
app.render(req.path, token)
.then((result) => {
res.status(result.status)
.send(result.html);
})
.catch((error) => {
const msg = error.stack || error;
console.log(msg);
res.status(500)
.send('500: ' + msg);
});
});
server.listen(config.port, function () {
co(function *() {
const cookies = new Cookies(socket.request, null, COOKIE_KEYS);
const sid = cookies.get('koa.sid', {signed: true});
const str = yield redisClient.get(`koa:sess:${sid}`);
const obj = JSON.parse(str);
if (!obj || obj.passport.user == null) {
next(new Error('session not found, cannot auth websocket'));
} else {
socket.handshake.user = {id: obj.passport.user};
next();
}
}).catch(next);
}
export default function appRouting(req, res) {
const context = {};
const cookies = new Cookies(req, res);
const store = createStore(
rootReducer,
compose(
applyMiddleware(
thunk,
getCookiesMiddleware(cookies),
),
)
);
const assets = require(process.env.RAZZLE_ASSETS_MANIFEST);
const modules = [];
return fetchData(store, req.url)
.then(() => {
const componentHTML = renderToString(
var route = function route(req, res) {
var cookies = new Cookies(req, res, {
secure: config.cookie.secure
})
cookies.set('x-access-token', null)
req.logout()
res.redirect('/abe/users/login')
}
export function getTokenFromCookies(req, res) {
var cookies = new Cookies(req, res, {
secure: config.cookie.secure
})
return cookies.get('x-access-token')
}
app.get('/*', async (req, res, next) => {
const css = new Set();
let context = {};
try {
context = await createWebStore({
cookieJar: new NodeCookiesWrapper(new Cookies(req, res)),
insertCss: (...styles) => {
return styles.forEach(style => css.add(style._getCss()));
},
location: req.url
});
context.persistor = await new Promise(resolve => {
const { store } = context;
const persistor = persistStore(store, config.initialState, () => {
return resolve(persistor);
});
});
initialProps.context = context;
initialProps.location = context.location;
AppRegistry.registerComponent('App', () => ServerApp);
const { element, getStyleElement } = AppRegistry.getApplication('App', {
initialProps