用户权限认证系统
1 | 在查找了很多有关SaaS架构的资料并完成了项目架构以及初步的数据库设计之后,就。。(开始了长时间的摸鱼 |
Rails 已经有一个完善的用户认证系统 Devise gem ,考虑到其过于庞大,以及自己想尝试着完整一个类似的完善功能,就自己在一步一步的完成。
安全的用户认证
1 | has_secure_password |
这是 Rails 为用户验证提供的一个很好的内置方法,提供了一个完善的用户密码验证方式
- 使用更安全的密码 依赖于 数据库 password_digest 字段
- 依赖于 bcrypt gem
- 获得一组虚拟属性 password 和 password_confirmation 创建用户对象时会检查该属性是否匹配
- 获得 authenticate 方法 用于校验用户密码
1 | class User < ApplicationRecord |
用户邮箱激活
Rails 的 Action Mailer 系统 同其他框架的邮件系统有一些差别,异常的方便,同时可以依靠 Rails Scaffold 从而快速的生成一系列邮件应用。
邮箱激活验证码:
1 | class User < ApplicationRecord |
依赖于 Rails Active Record 的回调,在数据库对象创建之前(before_create)注意是创建之前,而不是保存之前(before_save)如果是保存之前的话,可能会涉及到用户更新信息时也会调用该回调。
在数据库对象创建并保存成功之后,将该对象丢给邮件系统,从而将账户激活信息传递给用户。
用户在邮箱中,点击相应链接从而激活账户。
对于 邮件验证码 的激活,是采用了额外的资源路由组,从而完成了激活。
从用户到组织
在用户和组织之间,设计了一个 “会话关系(session)”,一个会话将一个用户连接到了一个组织。
因为并没有限制一个用户只能加入一个组织,就是说一个用户同时可以是零个或者多个组织的员工。

在这种情况下,将用户和组织的关系以会话的形式进行管理。可以有效的使一个用户在多个组织之间跳转。是一个行之有效的办法。
- Post title:用户权限认证系统
- Post author:Varsion
- Create time:2020-12-30 15:13:06
- Post link:https://blog.varsion.cn/post/a38475f7.html
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments