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