我使用的是带有身份验证管道的库Guardian 1.0,其定义如下:
defmodule DokkitoWeb.Plug.GuardianPipeline do
use Guardian.Plug.Pipeline, otp_app: :dokkito,
module: DokkitoWeb.Guardian,
error_handler: DokkitoWeb.Plug.AuthErrorHandler,
key: :user
plug Guardian.Plug.VerifySession
plug Guardian.Plug.EnsureAuthenticated
plug Guardian.Plug.LoadResource
end我在控制器中的登录代码执行以下操作:
DokkitoWeb.Guardian.Plug.sign_in(conn, user, key: :user)当通过管道时,我得到了
{
"message": "unauthenticated"
}如果我在sign_in调用和管道中都删除了key: :user,它可以很好地进行身份验证。我做错了什么?
发布于 2018-02-21 02:04:39
基本上我需要写:conn = Guardian.Plug.sign_in(conn, user, %{}, key: :user),否则关键字将被添加到声明中,而不是选项中。天哪,调试起来太复杂了……
https://stackoverflow.com/questions/48889789
复制相似问题