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

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

被 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 回复

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

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