分享 使用 Sorcery 做用户 Authentication 视频小教程

FinnG · 2022年04月10日 · 最后由 xianyuit 回复于 2022年04月13日 · 364 次阅读

被 Turbo 和 Devise 的搭配困扰了很久后学习了一下 Sorcery 这个 authentication 的 gem, 没有了 Devise 那么多开箱即用 (Turbo 以前) 的功能,但是也不会带来太多的麻烦。

小教程基本是根据 Sorcery 里的 Wiki 的基本密码登录的例子做的,自己在用的过程中补了一些小坑。

这个例子还是 monolith 的 app, 如果要前后端分离的话还有其他工作需要做。

这次换了一个不破音的麦克,而且加了中文字幕。

B 站链接

油管链接

欢迎提建议讨论!

认证系统还是要自己写好,devise 啥的,都不灵活

xianyuit 回复

大部分情况下是可以的,但是有的时候自己写不一定那么面面俱到。举个例子比如说,如果攻击者猜的 email 系统内没有,那么后端也不会运行 password 的加密算法,所以返回结果是很快的,阻止了登录。但是这种快速的响应会让攻击者知道这个 email 系统内是没有的,那么它就可以很快的去尝试下一个 email. 而 Devise 或者 Sorcery 都会处理这个情况,即使 email 是不存在的,它们还是会打一个时间差,不会马上返回结果,这样攻击者就无法猜出 email 是有还是没有😁 当然了如果是内部系统啥的,这些就不必考虑,自己 roll 一个 has_secure_password 的认证系统就可以了!

FinnG 回复

也许吧,简单用用还行的,遇到一些复杂的,还是要用自己的好一些😀

需要 登录 后方可回复, 如果你还没有账号请 注册新账号