nodejs做中间层如何进行权限认证
发布于 7 年前 作者 sunhaoxiang 5056 次浏览 来自 问答

我现在在做一个项目,用nodejs作为应用的中间层,前端通过superagent和nodejs层交互,nodejs通过superagent和数据层交互,但是在登录这一块我有点纠结,因为中间隔着nodejs,所有交互有都是异步的,所以在登录成功后后台产生的cookie或者token究竟要怎么让前端接收到呢?nodejs应该是不能把数据层响应的东西res全部什么也不处理直接返回给前端的吧,包括响应头什么的,所以如果是这样的话,是要在nodejs层把session id或者token什么的手动提取出来再设置为前端的响应头吗?如果不是那要怎么解决呢?

2 回复

简单说下我之前一个项目的方案,一个node做前端服务器和中间层,包括所有前端页面渲染都是node处理,后端rails做API,用OAuth2.0做身份验证和api scope。比如账号密码登录的场景,node拿到用户的账号密码后,请求上游api服务器做验证,api生成access_token和refresh_token,会有一张表专门存access_token、refresh_token和user id的对应关系。另外需要缓存一份这个数据到redis,因为前端cookie需要由node设置,cookie里面有sessionid,所以需要由node去操作redis,sessionid做key,access_token、refresh_token和userid和其他用户信息做value。在这个场景下,因为已经做了前后端分离,node作为中间层应该全权负责所有和前端交互的事情,前端应该完全不知道后端api的存在。

@nullcc 感谢解答!

回到顶部