我正在尝试在phoenixframework项目中实现Guardian jwt。
我有一个带有以下功能的user_controller.ex模块:index,create,show,update和delete
我只想确保用户在更新和删除时进行身份验证
如果我将plug Guardian.Plug.EnsureAuthenticated, handler: SessionController
放在模块顶部所有功能都要求身份验证。
我试着这样做:
plug Guardian.Plug.EnsureAuthenticated, %{ on_failure: { SessionController, :unauthenticated } } when not action in [:index, :create, :show]
,其中 按预期工作但我在控制台中收到以下错误:[warn] :on_failure is deprecated. Use the :handler option instead
所以问题是:如何只使用handler参数来要求更新和删除身份验证?
答案 0 :(得分:7)
plug Guardian.Plug.EnsureAuthenticated, [handler: SessionController] when action in [:update, :delete]