0.04
Low commit activity in last 3 years
No release in over a year
Twitch OAuth2 Strategy for OmniAuth
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.1
>= 0

Runtime

 Project Readme

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'
    }
  }
}