如何在 api 模式下使用 rails 5 创建自定义中间件?
How to create a custom middleware while using rails 5 in api-mode?
我正在尝试在 rails 5 中以 api 模式创建自定义中间件,其中仅适用于不以 /api/... 开头的路由将在
中重新添加
middleware.use ActionDispatch::Cookies
middleware.use ActionDispatch::Cookies::Session
这个 post 展示了如何在 rails 4 中做到这一点:
OmniAuth::NoSessionError - You must provide a session to use OmniAuth. (configured in devise)
我正在尝试创建一个中间件,就像上面 post 中接受的答案一样,但是当添加
config.middleware.insert_before ActionDispatch::ParamsParser, "SelectiveStack"
到application.rb它抛出一个错误说它找不到 SelectiveStack。
它也不会让我在 application.rb 中添加要求或包含来访问它,所以我想知道是否有人遇到过这个或有任何想法?
我可能只是格式错误或路径错误。
事实证明,ActionDispatch::ParamsParser 来自其他 Whosebug post 中间件实际上并不存在,错误的措辞有点混乱。
所以基本上要使其正常工作,您可以将中间件放在实际存在的中间件之前,或者只使用
config.middleware.use
而不是
config.middleware.insert_before
我正在尝试在 rails 5 中以 api 模式创建自定义中间件,其中仅适用于不以 /api/... 开头的路由将在
中重新添加middleware.use ActionDispatch::Cookies
middleware.use ActionDispatch::Cookies::Session
这个 post 展示了如何在 rails 4 中做到这一点: OmniAuth::NoSessionError - You must provide a session to use OmniAuth. (configured in devise)
我正在尝试创建一个中间件,就像上面 post 中接受的答案一样,但是当添加
config.middleware.insert_before ActionDispatch::ParamsParser, "SelectiveStack"
到application.rb它抛出一个错误说它找不到 SelectiveStack。
它也不会让我在 application.rb 中添加要求或包含来访问它,所以我想知道是否有人遇到过这个或有任何想法?
我可能只是格式错误或路径错误。
事实证明,ActionDispatch::ParamsParser 来自其他 Whosebug post 中间件实际上并不存在,错误的措辞有点混乱。
所以基本上要使其正常工作,您可以将中间件放在实际存在的中间件之前,或者只使用
config.middleware.use
而不是
config.middleware.insert_before