【Ruby on Rails 5】Devise+OmniAuthでTwitter認証する
今回の内容
Ruby on RailsでTwitterを使ってユーザー認証を実装したのでその際のメモ
参考サイト
こちらの2つの記事を参考に作成しました。基本は
Devise+OmniAuthでユーザ認証を実装する手順 - Qiita に沿って作っているのでここには変更点のみ書こうと思います。
変更点
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)
でリンクが生成されると書いてある。リンクが生成されるだけなのでこれをこのまま張り付けるのではなく、
として張り付ける。
作成したもの
GitHubに作成したものを上げておいたので置いておきます。参考にしたサイトの方も載せてくださっているのでそちらのほうが参考になるかと思います。