Egg.js中csrf的问题?

我现在遇到了一个问题,我在用Egg.js,Egg.js默认开启了csrf,POST请求都需要附带csrf请求头,csrfToken在Cookie中,问题是,我现在第一次访问是POST请求,但是Cookie里没有csrfToekn,所以这个接口访问的时候,就因为没有csrf头而被拦截了

比如说啊,我有一个注册的API,但是访问必须要携带存储在Cookie里的csrfToken,要获取csrfToken,必须先GET一次。然后呢,我第一次请求是POST,因为是注册API,所以Cookie里是没有csrfToken的

难道我注册之前,必须随便GET一下吗?

或者我也可以关闭csrf,来解决这个问题

感觉,有点不优雅。

阅读 4.5k
1 个回答

我的解决方案是关闭这个,使用自己的鉴权方案。前后端分离的项目其实不用担心CSRF攻击,使用自己的鉴权方案即可。如果不是前后端分离的用楼上说的注册登录页面用Egg渲染输出也可以。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进