我希望有两层身份验证 - 我将它们称为“硬”和“软”身份验证。硬层是标准的电子邮件和密码层。我目前使用has_secure_password和bcrypt-ruby gem来实现这个功能,如此Railscast中所述:# 250 Authentication from Scratch (revised)。
对于“软”层,我希望每个用户都有一个4位数的PIN码,可以用它来验证他们的身份并切换为活动用户。我希望像密码一样加密这个PIN码。
我的问题是:如何使用has_secure_password实现这两层身份验证,考虑到它具有“password_digest”列依赖关系(似乎不可定制或扩展)?我想在Users表中创建一个“pin_digest”列,并将其视为另一个密码,但似乎has_secure_password不支持这种方式。
如果有人对如何实现这个功能有任何建议,或者认为这个功能不好,请告诉我。
我正在编写一个共享亭子的应用程序,希望尽可能地使用户在不用每次输入完整的登录凭据的情况下轻松切换。这将在零售商店环境中使用,人们行动迅速,每次切换都需要输入完整的电子邮件地址和密码可能会很麻烦和缓慢。
实际操作如下:
- 用户使用“硬”身份验证登录。 - 一旦用户使用“硬”身份验证登录,其他用户可以通过简单地从用户列表中选择自己并输入他们的PIN码进行交换。 - 用户可以根据需要使用他们的PIN切换。 - 一旦有人点击“硬”注销按钮,所有用户都会被注销,并且必须使用“硬”身份验证才能重新登录。
对于“软”层,我希望每个用户都有一个4位数的PIN码,可以用它来验证他们的身份并切换为活动用户。我希望像密码一样加密这个PIN码。
我的问题是:如何使用has_secure_password实现这两层身份验证,考虑到它具有“password_digest”列依赖关系(似乎不可定制或扩展)?我想在Users表中创建一个“pin_digest”列,并将其视为另一个密码,但似乎has_secure_password不支持这种方式。
如果有人对如何实现这个功能有任何建议,或者认为这个功能不好,请告诉我。
我正在编写一个共享亭子的应用程序,希望尽可能地使用户在不用每次输入完整的登录凭据的情况下轻松切换。这将在零售商店环境中使用,人们行动迅速,每次切换都需要输入完整的电子邮件地址和密码可能会很麻烦和缓慢。
实际操作如下:
- 用户使用“硬”身份验证登录。 - 一旦用户使用“硬”身份验证登录,其他用户可以通过简单地从用户列表中选择自己并输入他们的PIN码进行交换。 - 用户可以根据需要使用他们的PIN切换。 - 一旦有人点击“硬”注销按钮,所有用户都会被注销,并且必须使用“硬”身份验证才能重新登录。
- Frank到达工作地点并使用“硬”认证方式(输入电子邮件地址和密码)登录共享亭。
- Frank在亭子里做了一些工作。
- Joe到达工作地点,也需要使用这个亭子。
- Joe在用户列表中点击自己的名字,然后被提示输入他的4位数字密码(“软”认证),他输入了密码。
- Frank不再是活跃用户。
- Joe现在是活跃用户。
- Joe做了一段时间的工作,之后Frank需要再次使用这个亭子。
- Frank从用户列表中点击自己的名字,然后被提示输入他的4位数字密码,他输入了密码。
- 当Frank完成后,他点击“注销”按钮。下一个想要使用该亭子的人必须使用“硬”认证方式进行登录。