我使用 Guardian 1 和 Phoenix 1.3。我正在尝试制作一个使用 JWT 的 API。我现在对路由进行身份验证。例如,如果get api/users/
标头中没有有效的令牌,您将无法访问。
我有一个看起来像这样的管道:
defmodule PhxAuthApi.Auth.AuthPipeline do
use Guardian.Plug.Pipeline, otp_app: :phx_auth_api,
module: PhxAuthApi.Auth.Guardian,
error_handler: PhxAuthApi.Auth.AuthErrorHandler
plug Guardian.Plug.VerifyHeader, claims: %{"typ" => "access"}, realm: :none
plug Guardian.Plug.EnsureAuthenticated
plug Guardian.Plug.LoadResource, ensure: true
end
我想要实现的是,如果用户在令牌资源中put api/users/1
有对应的,则调用的用户只能访问该路由。:id
我知道我可以通过调用来获取资源
resource = Guardian.Plug.current_resource(conn)
但是我该怎么做呢?制作另一个管道?
看起来怎么样,我找不到任何关于实现这一目标的文档?
我对 Elixir 和 Phoenix 还很陌生,这是我打算发布的第一个项目。