Javascript 使用React路由器和mixin进行服务器端身份验证

Javascript 使用React路由器和mixin进行服务器端身份验证,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在尝试使用React Router的WillTransitiono进行身份验证管理 我的流量是 组件(Auth Mixin)->WillTransition(检查是否登录/保存转换)->登录组件(成功后,重试旧转换) 这适用于客户端,但是我在授权服务器端的用户时遇到了问题 组成部分 身份验证服务 服务器 我想通过某种方式将Flux传递给我的身份验证服务,这样我就可以检查我的商店,查看用户是否登录。我尝试通过Mixin定义传递通量,但这不起作用:( 谢谢!显然,能够将上下文/传递参数添加到转换

我正在尝试使用React Router的WillTransitiono进行身份验证管理

我的流量是

组件(Auth Mixin)->WillTransition(检查是否登录/保存转换)->登录组件(成功后,重试旧转换)

这适用于客户端,但是我在授权服务器端的用户时遇到了问题

组成部分 身份验证服务 服务器 我想通过某种方式将Flux传递给我的身份验证服务,这样我就可以检查我的商店,查看用户是否登录。我尝试通过Mixin定义传递通量,但这不起作用:(


谢谢!

显然,能够将上下文/传递参数添加到转换对象(用于willTransitionTo和willTransitionFrom)是一个需要的功能

这里有一个pull请求,其中有很多关于问题/用例的评论

React.createClass({
    mixins: [Authentication]
    render: function() {
    return <h1>Blah</h1>;
  }
})
var Authentication = {
    statics: {
        willTransitionTo: function(transition) {
            if (!auth.loggedIn()) {
                PromptLogin.attemptedTransition = transition;
                transition.redirect('/login');
            }
        }
    }
};
module.exports = {
    loggedIn: function() {
        if (typeof(window) !== 'undefined' && window.flux) {
            return flux.store('UserStore').state.currentUser.loggedIn
        } else {
            return false;
        }
    }
};
Router.create({
    routes: AppRoutes,
    location: req.url,

    onAbort: function (reason) {
        if (reason instanceof Error) {
            next(reason)
        } else if (reason.constructor.name === 'Redirect') {
            // next(null, newRouter, {redirect: reason})
            res.redirect('/login');
        } else {
           next(null, newRouter, reason)
        }
    },

    onError: function (err) {
        next(err)
    }
});

Router.run....