/admin/users/1/log_out 路由错误

我在尝试通过 SSO 登出端点注销用户时遇到了错误,无论是在 Postman 还是网站上都是如此。

生产环境日志显示存在路由错误。我已再次确认 API 用户名和密钥是正确的。同样的代码在开发环境中可以正常工作,但在生产环境中却无法运行。

我已多次尝试撤销并重新创建 API 密钥,但均无济于事。我也尝试过将参数放在请求头中以及作为查询参数发送,但问题依旧。

以下是生产环境日志输出:

Started POST “/admin/users/2/log_out?api_username=dev&api_key=[FILTERED]” for 73.71.125.29 at 2020-05-26 01:37:17 +0000
ActionController::RoutingError (No route matches [POST] “/admin/users/2/log_out”)

在生产环境中是否需要执行某些特殊操作才能使 API 密钥被正确识别?

您需要在请求头中设置 Api-KeyApi-Username。请查看本主题顶部的 curl 示例:Discourse API 文档。请确保字段名使用连字符(-)而不是下划线(_)。例如,api-key 作为字段名可以正常工作,而 api_key 则不行。

2 个赞

成功了,谢谢。

如果其他人也遇到这个问题,这是测试所需的 curl 命令:

curl -X POST "http://localhost:3000/admin/users/1/log_out" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: [FILTERED]" \
-H "Api-Username: system"
1 个赞