Rails 请教下大家都是如何做手机注册 authentication 的 有好用的 gem 么。devise 等流行 gem 都是以邮箱中心,在国内似乎不合适

anonj · 2015年02月28日 · 最后由 zlx_star 回复于 2015年03月01日 · 4139 次阅读

国内很多人觉得邮箱麻烦甚至不用邮箱,注册用户都使用手机+验证码的方式。正好对于我们要做的项目,用户手机也比邮箱适合。不过我搜索了一下,似乎现有的流行 authentication gem 都是以邮箱而不是手机作为中心,甚至包括 devise 这样的 gem 貌似必须要求在 sign_up 里面包括邮箱地址。对于发短信,我见到 https://github.com/saberma/china_sms 这样的 gem,但 authentication 本身这部分似乎还没有见到类似的。想请教下让用户用手机号码注册的各位,是如何建造 authentication 方案的。是纯自己写么,还是也会在比如 https://github.com/binarylogic/authlogic 的基础上来修改。

先谢过了

共收到 11 条回复

devise 自己构造邮箱地址呢?比如 1333333333@phone.domain.com,当然只是一个解决方案。其实devise可以disable 邮箱选项,去Devise Github Wiki看看。 自己写也是OK的。

Devise 是可以用用户名的

@chunlea

我看了 wiki 的,但它说:

Important note: remember that even if you don’t want to sign in using email, you must have email in your sign up form. See StackOverflow thread for more information. If you don’t want to require an email address, simply define an email_required? function in your model, and have it return false.

也就是说我们还是得把 email 包括在 sign_up form 里面。担心这样用户会觉得繁琐而不注册。

还有就是比如说密码重置,devise 似乎没有提供非邮箱的选项。自己要 override 的话担心会与本身系统有点不兼容?

为啥要用 Devise?

#4楼 @iBachue 所以问大家有什么 Alternative 方案嘛,除了自己写之外。之前做的项目是用邮箱验证,对 devise 也比较熟,

如果用短信,devise就没什么用武之地了,忘记密码,重置密码那些都得改,虽说devise可以添加任意字段,比如username, mobile等等,但如果验证的全套东西都用不了,干嘛还用它呢。authlogic不了解,但可以想象大同小异。修改工作量大。 So,自己写吧,慢慢完善。

补充:我曾找过devise的sms插件,有几个,但没有好用的,大概四个月前的事,你可以再google一番。

#5楼 @anonj 能自己写还是尽可能自己写呗

#3楼 @anonj 那还是自己写吧,真的不困难。RailsCasts上面有详细步骤。

可以啊,我就是用devise的,你只要改验证的字段为mobile,至于你说的邮箱问题,你可以构造一个有意义的邮箱,例如就用他的手机 mobile@你的域名,不需要就永远不显示就行了

devise改下字段就好了。。。可以支持非邮箱的

如果是手机使用,那基本上就是提供 API 供客户端调用了, devise 应该就显得鸡肋了。

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