我的应用中有两个用户,买家和管理员,他们都有不同的登录详细信息,管理员使用电子邮件和密码登录,买家使用他们的电话号码和我们发送给他们的代码登录。所以,我做了两个认证插件。这是我将插件添加到浏览器管道的方式:
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug Phoenix.LiveView.Flash
plug :protect_from_forgery
plug :put_secure_browser_headers
plug AffirmWeb.BuyerAuth
plug AffirmWeb.AdminAuth
end
所以问题来了,当管理员登录时,他们得到登录菜单,他们可以访问所有其他页面。当买家登录时,我可以从日志中看到(我 IO.inspect 连接,所以我知道他们已经登录),他们仍然得到“退出”菜单,他们也无法访问某些页面。如果我将管道顺序更改为 AffirmWeb.BuyerAuth 排在最后,那么现在买家可以访问其他页面而管理员无法访问。关于如何解决这个问题的任何指导?