WebTheoryLLC / omniauth-twitch

OmniAuth Strategy for Twitch
MIT License
32 stars 22 forks source link

Gem Version

OmniAuth::Twitch

A OmniAuth strategy for Twitch

Installation

Add the OmniAuth Twitch and OmniAuth rails_csrf_protection gems to your Gemfile

gem 'omniauth-twitch'
gem 'omniauth-rails_csrf_protection'

Usage

Here's an example for adding the middleware to a Rails app in config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitch, ENV["TWITCH_CLIENT_ID"], ENV["TWITCH_CLIENT_SECRET"]
end

Auth Hash

Here's an example Auth Hash available in request.env['omniauth.auth']:

{
  provider: 'twitch',
  uid: '12345678',
  info: {
    name: 'JohnDoe',
    email: 'johndoe@gmail.com',
    nickname: 'johndoe',
    description: 'My channel.',
    image: 'http://static-cdn.jtvnw.net/jtv-static/404_preview-300x300.png',
    urls: {
      Twitch: 'http://www.twitch.tv/johndoe'
    }
  },
  credentials: {
    token: 'asdfghjklasdfghjklasdfghjkl', # OAuth 2.0 access_token, which you may wish to store
    expires: false # this will always be false,
    refresh_token: 'asdschbjh24h23yfsjfhbsjdc3a' # OAuth 2.0 refresh token, to renew the access token when it expires
  },
  extra: {
    raw_info: {
      display_name: 'JohnDoe',
      id: '12345678',
      login: 'johndoe',
      type: '',
      broadcaster_type: '',
      description: 'My channel.',
      profile_image_url: 'https://static-cdn.jtvnw.net/user-default-pictures/0ecbb6c3-fecb-4016-8115-aa467b7c36ed-profile_image-300x300.jpg',
      offline_image_url: '',
      view_count: 100500,
      email: 'johdoe@gmail.com'
    }
  }
}