tomokiの備忘録

ITに関する簡単な備忘録です

【Ruby on Rails 5】Devise+OmniAuthでTwitter認証する

今回の内容

Ruby on RailsTwitterを使ってユーザー認証を実装したのでその際のメモ

 参考サイト

こちらの2つの記事を参考に作成しました。基本は

Devise+OmniAuthでユーザ認証を実装する手順 - Qiita に沿って作っているのでここには変更点のみ書こうと思います。

qiita.com

qiita.com

 

変更点

 Username,nameを取得したかったのでカラムにusernameとnameを追加する

カラム追加時の

rails g migration AddColumnsToUsers uid:string provider:string

rails g migration AddColumnsToUsers uid:string provider:string username:string name:string

とし、usernameとnameを保存するためのカラムを追加する。

その後

app/models/user.rbのUser.createの中に

username: auth.info.nickname,
name: auth.info.name

を追加する。

こうすることで初回認証時にTwitterのアカウント名がusernameカラムに入る。

 

つまづき

認証用リンクが表示されない

user_omniauth_authorize_path(:twitter)

 でリンクが生成されると書いてある。リンクが生成されるだけなのでこれをこのまま張り付けるのではなく、

<%= link_to "Sign in with Twitter", user_twitter_omniauth_authorize_path %>

として張り付ける。

 

作成したもの

GitHubに作成したものを上げておいたので置いておきます。参考にしたサイトの方も載せてくださっているのでそちらのほうが参考になるかと思います。

GitHub - tmk815/Twitter_OmniAuth