【发布时间】:2019-08-10 10:55:32
【问题描述】:
我正在尝试在 elixir/phoenix 中构建一个简单的身份验证系统,该系统可以用作任何 phoenix 应用程序的依赖项。
我已按照programming-phoenix-1.4 书中的步骤进行操作,并且非常轻松地设置了基本的身份验证系统。
在本书中,他们讨论了将用户敏感信息和非敏感信息分离到应用程序和数据库中的不同位置。所有非敏感信息(用户名、姓名等)都放在users 表中,而敏感信息(电子邮件、密码等)则放在credentials 表中。
基于此,我想知道是否可以将身份验证逻辑分离到自己的应用程序中。
此身份验证模块需要:
- 在需要的应用程序的数据库中创建
credentials表 - 根据从父应用传递的信息更新所述表
- 包含一个能够从父应用程序更新
conn的auth plug(例如,使用assign函数将:current_user添加到conn)
不幸的是,我现在正处于第一个障碍。我不确定是否有可能需要一个可以创建数据库表的模块。
我想如果第 1 步可行,第 2 步将很简单。第 3 步看起来可以通过 Router.forward/4 函数实现。
【问题讨论】:
-
我不确定那本书提到了什么,但我几乎不明白原因或将用户信息分成两个单独的表格。另外,你提出的这个模块如何比经过实战证明的
Guardian更好? -
@AlekseiMatiushkin 非常感谢您的回复(以及您对长生不老药问题的所有其他回复)。我主要将其用作学习经验,并想知道我是否可以建立这个想法。我认为这将有助于在我根据编程 phx 1.4 的课程构建的任何应用程序中创建一个简单的注册/登录/注销流程。我的目标不是构建我会在“真实”项目中使用
Guardian之类的东西。
标签: elixir metaprogramming phoenix-framework ecto