| @技術/プログラミング

OAuthを導入しようとした。Twitterのだけなら何とか拾ってきたコードで動くとこまで持ってけてたけど、どうせやるならいろんなOAuth Providerに対応したい。oauth-pluginってgemを使えば簡単に沢山のOAuth Providerに対応できるみたいなので導入しようとしたけど、これがくせ者だった。

まずoauthとoauth-pluginをただ入れるだけじゃ動かない。 acts_as_authenticated, restful_authentication or restful_openid_authentication というプラグインが入ってて、ユーザー認証をこれらのgemに任せてないとダメ。

作者がrestful_authenticationをすすめてたのでこれを導入した。(usersテーブルの構造自体が変わるので、ただ単にインストールするだけじゃなくて rake db:drop して古い db/migrate/(日付)_create_users.rb を削除し、もう一回 rake db:migrate しないといけない。さらにControllerとかViewとかもいじらなきゃいけないので地味に結構面倒くさい。

しかし何度やってもうまくいかない。「 login_required みたいなメソッドねーし」とかエラーが出る。どうやら昔の restful_authentication にはそういうメソッドがあったらしんだけど、現在の restful_authentication からは削除されてるらしい。他にも current_user っていうのも未定義で、この辺のエラーのおかげで完全に萎えた。

そういうわけで一週間くらいOAuth対応に向けて頑張ってたけど諦めました。TwitterだけOAuth認証に挑戦してみる。とってきたOAuth Tokenの扱いとかに若干不安があるけどうまくいくかしら。