
6 年前我还在上大学,因为自己懒得每次登录账号都要找手机看二步认证,写了一简单的浏览器插件显示二步认证的代码: https://v2ex.com/t/110184
这个浏览器插件不是第一个支持显示二步认证的代码,所以它在当时是一个新轮子。造轮子这种行为被吐槽是很正常的,所以这个小插件面对的第一个挑战就是“又造了一个新轮子”。
将二步认证放在登录账号的同一台设备上运行是违背技术设计初衷的。这是这个小插件从出现以来到现在面对的最大的挑战。这个质疑是非常合理的,我曾经也一度思考是不是应该停止这个项目的开发。
因为很多二步认证需要扫描二维码添加账号,而确实存在一些网站不提供可以手动添加的密钥字符串。这就导致没有智能手机的用户无法启用二步认证有些网站启用二步认证是必须的,否则无法继续使用账号。
这个支持截取屏幕上的二维码添加二步认证的小插件突然就有了它的价值。后来一位美国的在读大学生找到了这个小插件,并且发现使用它可以解决他遇到的问题,随后加入到了这个项目里和我一起开发。目前我们依然一起活跃在对这个项目的维护上。
因为项目是遵循 MIT 协议的开源项目,使用的用户也开始变得多了起来。这个小插件被写进了多个网站 /公司的知识库 /WiKi 中作为推荐二步认证客户端。在去年,这个小插件被美国政府官方网站推荐为二步认证客户端( https://www.login.gov/help/creating-an-account/authentication-application/ )

最近,这个小插件终于迎来了它的第 100 万个用户

除了支持 Chrome 浏览器,后来也做了对火狐和 Edge 浏览器的支持。它还被火狐选为了火狐特色插件( https://blog.mozilla.org/addons/2018/07/02/julys-featured-extensions-2/ )。
这个项目的初衷是让大家更方便地使用二步认证,所以推动用户数据自由流动也是项目关注的重点。这个小插件不仅可以让用户自由安全地导入导出数据,同时也帮助推动了不同二步认证客户端直接数据的交换,让用户有更多选择的权力( https://authenticator.cc/docs/en/otp-backup )
完全自由开放的项目会更加吸引社区用户过来帮忙。这个小插件在社区的帮助下,实现了对 32 个国家 /地区语言的支持,这进一步吸引了更多不同国家的用户。
作为一个和安全相关的项目,也少不了被很多人审查代码。很多社区用户提出了安全方面的建议,这个小插件也一直在审视用户数据访问权限的合理性,做了两次降低插件权限的更改。也正是因为在一开始就对权限控制的重视,在今年 Google 开始的大规模下架滥用权限的插件的行动中,这个当时用户量超过 70 万的小插件没有受到任何影响。
浏览器被视作搜集用户数据的重要平台,用户量较多的浏览器插件就成了很多数据分析公司和广告投放公司的收购对象。这个小插件也不例外,我收到了至少 5 封来自不同公司的邮件向我咨询收购这个插件的事宜。钱很重要,但是做开源项目的目的和钱在两个维度上,当我们谈论开源项目本身时(并不包括维护、部署开源项目的服务费用),和钱就没有任何关系了。后来我在小插件的描述页面上加了一段话:
To guys who want this extension buyout: this extension has a very strict content security policy, it is impossible to insert any ADs into the extension to make money, so please DO NOT write emails to me any more.
当你开始做开源项目时一定是抱着被感谢、被需要的心态的。但是现实有时并不那么符合预期。免费的开源项目也会出现不少要求甚至命令你为其个人需求添加新功能的用户,如果你觉得这个功能因为某些原因不适合做或者暂时不会做时,他们并不会理解你,甚至会攻击你。
有些看似呼声很高的需求,当你加班加点做出来时,发现数据并不那么好看这可能是幸存者偏差,只有会使用这个功能的人才会给你发反馈意见。
当用户量开始显著变多时,比如几十万、上百万,一个千分之一概率出现的问题也会被用户“狂轰乱炸”,所以当你自己的业余小项目开始受欢迎了,或许你需要改变你对这个小项目的态度了。认真测试,分批部署,否则你可能发布新版本后无法睡个好觉。
最后最重要的,在项目前期不要被别人的言论打到,没人能预测你造的这个轮子会不会跑过前面的轮子。

1 laogui 2020-08-04 19:46:48 +08:00 via Android 大家更关心的是你靠这个赚钱了吗? |
2 seki 2020-08-04 19:48:16 +08:00 强,点赞,支持 |
3 sneezry OP @laogui #1 “钱很重要,但是做开源项目的目的和钱在两个维度上,当我们谈论开源项目本身时(并不包括维护、部署开源项目的服务费用),和钱就没有任何关系了。” |
4 Hosing 2020-08-04 19:50:13 +08:00 很好的经验,有被激励到 /虽然我不是开发者 XD |
5 woodfly 2020-08-04 20:19:41 +08:00 如果把两步认证理解为避免账户密码泄露导致的账户丢失,在同一个设备上进行验证貌似就没啥问题。 |
6 GavinFlying 2020-08-04 20:22:27 +08:00 用户路过,感谢大佬 |
7 mornlight 2020-08-04 20:32:11 +08:00 |
9 patx 2020-08-04 20:40:22 +08:00 via Android 恭喜。楼主有专门去宣传推广么? |
11 Cheat 2020-08-04 20:42:29 +08:00 via iPhone 很厉害,很羡慕 |
&nsp; 12 mymike 2020-08-04 20:42:59 +08:00 正在用 真的很方面 |
13 Whalko 2020-08-04 20:57:12 +08:00 奇了怪了,想装上试试发现装不上……右上角扩展程序列表里面没有。chrome://extensions 里面也没有……身份验证器和 Authenticator,进 webstore 看又是问我要不要移除,我都重启电脑了……一直在用 Authy,被“能用 Google 账号同步”吸引了想试试看,版本是 chrome84,真的很神奇…… |
14 labulaka521 2020-08-04 21:09:32 +08:00 支持支持支持支持 |
15 myjava 2020-08-04 21:47:56 +08:00 一直在用,很棒 |
16 zhaohy 2020-08-04 21:52:02 +08:00 via iPhone 666 原来是楼主写的,一直在用,很好用,感谢 |
17 A3 2020-08-04 21:55:16 +08:00 via Android 牛逼 |
18 graetdk 2020-08-04 22:09:25 +08:00 太强了,楼主能留下联系方式吗?想合作做点东西 |
19 find456789 2020-08-04 23:30:40 +08:00 给你点赞,加油 |
20 Tink PRO 支持 |
21 raaaaaar 2020-08-05 01:46:44 +08:00 via Android 强,这是真的对整个社会都有一定的影响呀,希望有一天我也能做出这样的产品。 |
22 baiyi 2020-08-05 07:28:27 +08:00 给大佬点赞。谢谢大佬的《 Chrome 扩展及应用开发》,当时写扩展全靠着这本书了 |
23 yuyu2140 2020-08-05 08:56:48 +08:00 楼主设计的 Happy Hacking 2018 日历至今还在我的桌面上,给有想法有行动的楼主点赞 |
24 icwaos 2020-08-05 09:07:55 +08:00 为啥卸载扩展数据就丢失了 |
25 justin2018 2020-08-05 09:24:16 +08:00 |
26 sneezry OP @icwaos Chrome 是这样设计的,在卸载插件后会清理数据。而插件是没有能力在用户卸载时阻拦一下提醒备份数据的,所以如果没有配置第三方备份( Dropbox 、Google Drive 或者 OneDrive ),插件会每个月弹出一次提示备份的消息。 |
27 anyclue 2020-08-05 09:58:12 +08:00 不大会用啊,国内有哪些网站支持 Google 2FA 啊 |
28 chotony 2020-08-05 13:11:56 +08:00 非常棒的作品,去年才发现这个插件,一直用到现在,感谢作者的付出 |
29 ragnaroks 2020-08-05 17:04:46 +08:00 |
30 liuzhiyong 2020-08-05 17:18:53 +08:00 强悍!“100 万用户”,只能说太牛了。 |
31 BruceXHe 2020-08-05 17:28:25 +08:00 其实我并不知道这个插件是做什么的,谁能用通俗的语言表述一下? |
32 LiuJiang 2020-08-05 17:49:41 +08:00 真棒阿!给楼主点个赞! |
33 izhangzhihao 2020-08-05 17:56:19 +08:00 一直在用,非常棒!真心感谢 |
34 13936 2020-08-05 18:24:35 +08:00 我们需要一些感性,一些金钱之外的利益。 |
35 nthhdy 2020-08-05 18:45:56 +08:00 发现我也用过 :D |
36 newlifeinsc 2020-08-05 19:36:58 +08:00 我也没用过,不知道怎么使用,下载来看了下,不知道理解的对不对。 一些网站可以设置 "二步认证", 比如谷歌和微软的。 设置二次认证后,网站会给你一个密钥,一般来说,这个密钥是放在手机上的。这样以后,用户登录网站时,网站都要求输入六位数的二次认证码, 用户每次都需要在手机上看到生成码以后在网站上输入才能登录。 这个扩展的作用是,将网站给的密钥保存到浏览器里,这样每次登录要求输入二次认证码时,直接从扩展上看,不需要再拿出手机了。 |
37 a132811 2020-08-05 21:15:42 +08:00 点开一看,原来我是你的用户,用了好些年了吧。 很多公司内部都是采用的这种二步认证,这个插件确实很方便,不用依赖手机 |
38 xkzhangsan 2020-08-05 21:43:11 +08:00 via Android 点赞 |
39 7gugu 2020-08-05 23:23:07 +08:00 via Android 厉害 |
40 SupperMary 2020-08-05 23:47:08 +08:00 厉害厉害 |
41 Heanes 2020-08-06 10:17:58 +08:00 我还以为是 google 官方出的。。 |
42 leelrs 2020-08-06 11:12:13 +08:00 楼主这张图是用什么软件做的 |
43 palexu 2020-08-06 11:43:00 +08:00 赞啊 |
45 morphyhu 2020-08-06 13:46:01 +08:00 为楼主的态度点赞。 |
46 Recour 2020-08-06 14:05:14 +08:00 感谢分享 |
47 leeshong27 2020-08-07 09:11:23 +08:00 厉害 |
48 keepfun 2020-08-07 10:06:40 +08:00 厉害 虽然有别的实现方式 但是还是给浏览器加上这个了 |
49 bulaocai5 2020-08-08 11:29:37 +08:00 谢谢 分享 已经安装啦 |
50 loading 2020-08-09 16:42:42 +08:00 好厉害 |
51 peterjose 2020-08-09 17:07:45 +08:00 不错 已安装 |
52 wxmomomowx 2020-08-14 11:47:51 +08:00 请问下, 如果学校也实行了 2FA,给一个小小的 硬件(类似 MP3 播放器, 按下去 会有动态数字的) ,可以用这个插件代用,或 一起食用吗? 就是用自己的电脑时, 就是可以用这个插件, 当登录学校电脑是, 就用“MP3 播放器” 还有个更无知的问题, 这个“MP3 播放器” 是否可以 也给其他的账号做 2FA 呢? 谢谢 |
53 1847bell 2020-08-21 14:27:35 +08:00 有一说一,我在前几年看到这个插件的时候确实解决了我非常大的痛点因为我并不想每次输入二次验证的时候都要去点亮、解锁我的手机。在 Chrome 里面就可以查看复制二次验证码实在是让我非常爽。而且它还可以网络同步。 直到我用了 1Password 。 |
54 K1W1 2021-01-27 19:59:25 +08:00 感谢,插件很好用! |