Gem 有人开始用 omniauth 1.0 + omniauth-identity 1.0 吗?

changtimwu · 2011年11月23日 · 最后由 raecoo 回复于 2012年02月04日 · 5887 次阅读

omniauth 1.0 这个月初才刚发布,我搭配测试 omniauth-facebook, omniauth-twitter, omniauth-weibo 都很顺利,本来以为再补上 omniauth-identity 就可以把 devise 扔了,

但实测结果,register 后传回来的 auth hash 里面都看不到任何 'password' or 'password_digest', 感觉似乎是 bug.

你可以有个类继承 OmniAuth::Identity::Models::ActiveRecord,然后 request_phrase 时候会做 save,这时候 password_digest 就被存起来了

基于 omniauth-identity 用你自己的 Model 去保存这些数据。

https://github.com/intridea/omniauth-identity/blob/master/lib/omniauth/strategies/identity.rb

#1 楼 @sishen 我就去倒了杯水,1 楼就被你抢了

#1 楼 @sishen 话说你要这个名字我还很不习惯,干嘛不用 yedingding 呢?

github 里面是 sishen 啊,然后 github 登陆后就没改过用户名

omniauth-weibo 已经可用了?

@suupic 我是抓这份 https://github.com/ballantyne/omniauth-weibo , 我只有简单测,初步验证可用。

@raecoo, @yedingding 感谢你们的解答,我才发现 omniauth-identity 其实一直自动把使用者注册帐号写到另一个 model( 终于了解为什么文件上就说要先开个 model 叫做 Identity)... 一开始我直觉无法离解,因为这跟其他 strategy 的回报途径完全不一样 (其他 strategy 只会透过 callback request 把 auth hash 变数传到你的程式,并不会自动写 model).

后来想想这是对的,omniauth-identity 的哲学是把原本最单纯的 id /password 认证也模拟成第三方认证,Identity 那个 model 我们要把它想像成像是第三方外部机构,不应该期待 callback 里面会给 password_digest

identity 也可以发成你自己想要的 Model,比如说 User, 这样的话就直接与现有’用户‘自然合成。大大增加了易用性。

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