Closed hongjinquan closed 6 years ago
@atian25 急急急,请大神帮忙看一下!
你 ajax 那边没带上 csrf 的原因吧。
如果不在乎这个的话,那就 csrf: false
@atian25 我是通过直接通过form提交的post请求,根据文档在ejs模板中添加了
<input type="hidden" name="_csrf" value="{{ctx.csrf}}" />
也没有生效。
我刚好碰到这个问题,看了之前的issu配合文档解决了。解决方案很多,不知道你适合哪种。(建议遇到疑问,可以关键字先搜索一下issu是否有解答,然后再配合文档,会找到答案的。鄙人菜鸟一枚。。。)
最好直接加到 url 上,不用放到 hidden
@atian25 放到url上也没生效。我是通过路由控制然后判断条件,符合条件后进行重定向了。
@AnyGong 我是通过路由控制然后判断条件,符合条件后进行重定向了。你是怎么解决的!我看了issue没找到相关的解决方案。
我也刚好碰到这个问题。 security中的domainWhiteList 好像没有作用似的,不知是不是没有正确使用。
不过在看egg-security文档时,发现了解决了这个问题的办法。 解决方案1:关闭csrf验证
config.security = {
csrf: { enable:true}
}
解决方案2:忽略白名单的csrf验证
config.security = {
domainWhiteList: ['http://localhost:8080'],
ignore:ctx=>{
const domainWhiteList = ctx.app.config.security.domainWhiteList
return domainWhiteList.indexOf(ctx.request.headers.origin) != -1
}
}
嗯嗯。改用token了。后边再试一下。谢谢咯。
邮箱:945338022@qq.com
签名由 网易邮箱大师 定制 在2018年03月26日 16:00,NULL 写道: 我也刚好碰到这个问题。 security中的domainWhiteList 好像没有作用似的,不知是不是没有正确使用。 不过在看egg-security文档时,发现了解决了这个问题的办法。 解决方案1:关闭csrf验证 config.security = { csrf: { enable:true} }
解决方案2:忽略白名单的csrf验证 config.security = { domainWhiteList: ['http://localhost:8080'], ignore:ctx=>{ const domainWhiteList = ctx.app.config.security.domainWhiteList return domainWhiteList.indexOf(ctx.request.headers.origin) != -1 } }
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/eggjs/egg","title":"eggjs/egg","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/eggjs/egg"}},"updates":{"snippets":[{"icon":"PERSON","message":"@mwang0 in #2159: 我也刚好碰到这个问题。 \r\nsecurity中的domainWhiteList 好像没有作用似的,不知是不是没有正确使用。\r\n\r\n不过在看egg-security文档时,发现了解决了这个问题的办法。 \r\n解决方案1:关闭csrf验证\r\n\r\nconfig.security = {\r\n csrf: { enable:true}\r\n}\r\n
\r\n\r\n解决方案2:忽略白名单的csrf验证\r\n\r\nconfig.security = {\r\n domainWhiteList: ['http://localhost:8080'],\r\n ignore:ctx=\u003e{\r\n const domainWhiteList = ctx.app.config.security.domainWhiteList\r\n return domainWhiteList.indexOf(ctx.request.headers.origin) != -1\r\n }\r\n}\r\n
"}],"action":{"name":"View Issue","url":"https://github.com/eggjs/egg/issues/2159#issuecomment-376078988"}}}
通过form表单进行验证登陆时,一直报403错误,说是csrf token不合法,请帮忙看一下!到底啥什么问题!