【问题标题】:Elixir/Phoenix Framework authentication/authorizationElixir/Phoenix Framework 认证/授权
【发布时间】:2020-02-20 21:51:53
【问题描述】:

我正在为 elixir / phoenix 框架做一个项目。有一个关于授权的问题。例如,我有一条路线:

get "/dashboard", DashboardController, :index

我希望只有登录用户能够走这条路。当我介绍这个过程时:用户沿着这条路线前进,它会检查用户是否已登录。如果是,则调用处理此路线的控制器函数,如果不是,则重定向到登录页面。请告诉我,如何在凤凰框架中正确实现这一点?可能有很多类似的路线,我希望有 1 个处理程序。

【问题讨论】:

  • 你使用什么认证库?基本上,您需要在管道中添加相应的插件。
  • @AlekseiMatiushkin ,我想要某种路线预处理程序,它只会检查会话中的值并让用户沿着路线前进
  • 你基本上是在寻求推荐——这在 S O 上被认为是题外话。也许你可以自己做一些研究,然后缩小你的问题范围。

标签: elixir phoenix-framework phoenix


【解决方案1】:

我正在使用pow 进行身份验证。我有以下管道:

 pipeline :protected do
    plug Pow.Plug.RequireAuthenticated,
      error_handler: Pow.Phoenix.PlugErrorHandler
  end

然后,我只需要通过正确的管道传递我的作用域:

 scope "/dashboard", MyAppWeb do
    pipe_through [:browser, :protected]
    get "/", PageController, :dashboard
  end

所有需要身份验证的路径都会去那里。如果您希望它用于其他一些库/实现,则方法应该类似。您可以在here 中看到使用Guardian 进行身份验证的示例,其中范围的使用方式相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-01
    • 2018-01-21
    • 2018-12-11
    • 2016-03-11
    • 2018-07-25
    • 2018-05-29
    • 2010-11-14
    相关资源
    最近更新 更多