2017-08-08 69 views
0

我通过护照(Koa,Mongodb,React,Redux)实现了用户的授权。haw在登录后加载用户信息SPA koa.js

router.post('/login', function(ctx, next) { 

    return passport.authenticate('local', async function(err, user, info) { 
     if (err) throw err; 

     if (user === false) { 
      ctx.status = 401; 
      ctx.body = { error: info }; 
     } else { 
      ctx.body = { 
       success: true 
      }; 
      await ctx.login(user); 
     } 
    })(ctx, next); 
}) 

如果用户登录,他会重定向到配置文件页面(主页面)。

router.get('/login', function(ctx, next) { 
    if (ctx.isAuthenticated()) { 
     ctx.redirect('/'); 
    } else { 
     ctx.body = fs.readFileSync(path.resolve(path.join('build', 'index.html')), 'utf8') 
    } 
}); 

因为我有一个水疗中心,我总是通过一个静态文件(在客户端上通过反应路由器的路由)

的问题是,我不明白我是如何获取关于用户的信息时,配置文件页面被加载

如果我从React组件发送一个ajax-request(feth),那么请求另一个会话id并且它不与用户关联。

或者,我需要在服务器上执行此操作,但我如何使用服务器上的存储存储?

如何最好的解决这个问题?

回答

0

好,虽然它可能不是最好的办法,这样做将是在你的HTML文件就像一个部分最简单的方法..

<script type="text/javascript"> 
    window.currentUser = $$USER$$ 
</script> 

然后做身体上的替换。您可以使用window.currentUser