user.js 760 Bytes
const _ = require('lodash');
const cookie = global.yoho.cookie;

module.exports = () => {
    return (req, res, next) => {
        // 从 SESSION 中获取到当前登录用户的 UID
        if (req.session && _.isNumber(req.session._LOGIN_UID)) {
            req.user.uid = req.session._LOGIN_UID;
        }

        // session 没有读取到的时候,从 cookie 读取 UID
        if (!req.user.uid && req.cookies._UID) {
            req.user.uid = cookie.getUid(req);
        }

        // 从 SESSION 中获得 USERNAME
        if (req.user.uid) {
            req.user.username = req.session._USERNAME;

            if (!req.user.username) {
                req.user.username = req.cookies._USERNAME;
            }
        }

        next();
    };
};