如何在 rails 上使用 ruby 中的安全密钥保护设计中的注册

how to protect signup in devise using a security key in ruby on rails

在设计中我想验证管理员的注册。只有拥有预定义随机字符串的人才能注册。我想对除用户以外的所有设备执行此操作。我有管理员、教师、学生、分支机构和家长登录名。所以我想让那些拥有我提供的密钥并且对所有登录系统都不同的人进行注册。我想通过脚手架来为这些登录创建一个新的安全密钥并随时进行编辑。 所以请帮助我如何完成这项任务。

你可以试试这个,这不是确切的代码。

假设您有 User 个模型 定义 class 生成随机密钥的方法

def self.generate_uniq_id
   chars = 'ABCDFGHJKLMNPQRSTVWXYZ'
   nums = '0123456789'
   result = ''
   5.times { |i| result << chars[rand(chars.length)] }
   4.times { |i| result << nums[rand(nums.length)] }
   result
end

然后通过电子邮件邀请用户,并在由signup_users_path(User.generate_uniq_id)secret_key生成的link电子邮件中发送。当用户点击 link 时,用户将被重定向到您的网站。 signup_users_path(User.generate_uniq_id)routes.rb 中的操作定义为 signup,这将在用户登陆网站时处理 验证 link 中的 secret_key,并允许用户注册或重定向回 home 页面