omniauth-medium 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 816a3ccd8c2fa4617aab714168920960bb0e1d3c
4
- data.tar.gz: 87725b0468daab1f074aded8308c3379c3f891bc
3
+ metadata.gz: 66cc6f63c5789b2750d51f20f6c73434a8e53dfe
4
+ data.tar.gz: 66acad21da93f933faf70f65619bb94e47391382
5
5
  SHA512:
6
- metadata.gz: 9f84ffd836fd2003e7b97ab6541699618191c12a3f87a4892c903c0d2e05b7145c03f95e936972851bb42243669853906a6ec6508e996022b282f5d1a6280509
7
- data.tar.gz: bbe83688df22d21cc6cf5533e31b3096fcfa139e11f4e1f1e3a403364dda1c90bceb0d9b7a2208dea90ba4cab17815265745acf04817b263001e89a32245fb34
6
+ metadata.gz: 968607eb21ac2e6e1788d6b4829f65017fa7ee34f3f345cb1161bce841653739252d82fe4535ec7d0f73df2d5dedf597681cafd71de7a773166bd00aa999425b
7
+ data.tar.gz: 34aef3217ae1374d606dd765556c6b738ef7c6e9b7c2ebbc368d9caab21ddf519b29f98b8ead3c0b0d8309f2e68d4507f8bc757d920c7e6404c4f0ec74c66dfa
data/.gitignore CHANGED
@@ -7,3 +7,5 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /.env
11
+ /*.gem
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Omniauth::Medium
2
+ [![Gem Version](https://badge.fury.io/rb/omniauth-medium.svg)](https://badge.fury.io/rb/omniauth-medium)
2
3
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/omniauth/medium`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+ This is an unofficial OmniAuth strategy for authenticating through Medium.
5
+
6
+ To use it, you'll need to [register a new OAuth application](https://medium.com/me/applications/new) with Medium.
4
7
 
5
- TODO: Delete this and the text above, and describe your gem
6
8
 
7
9
  ## Installation
8
10
 
@@ -20,9 +22,35 @@ Or install it yourself as:
20
22
 
21
23
  $ gem install omniauth-medium
22
24
 
23
- ## Usage
25
+ ## Basic Usage
26
+
27
+ use OmniAuth::Builder do
28
+ provider :medium, ENV['MEDIUM_CLIENT_ID'], ENV['MEDIUM_CLIENT_SECRET']
29
+ end
24
30
 
25
- TODO: Write usage instructions here
31
+ ## Example Omniauth Hash
32
+ ```
33
+ {
34
+ "provider"=>"medium",
35
+ "uid"=>"1ec92d6f7dc96f3c95dfa0100d0bf03f36d2fe6b27a15b5c3061609866650d484",
36
+ "info"=>{
37
+ "id"=>"1ec92d6f7dc96f3c95dfa0100d0bf03f36d2fe6b27a15b5c3061609866650d484",
38
+ "username"=>"adamkirkwood",
39
+ "name"=>"Adam Kirkwood",
40
+ "url"=>"https://medium.com/@adamkirkwood",
41
+ "imageUrl"=>"https://cdn-images-1.medium.com/fit/c/200/200/0*lBXH3ieYv40OwIlo.jpeg"
42
+ },
43
+ "credentials"=>{
44
+ "token"=>"...",
45
+ "refresh_token"=>"...",
46
+ "expires_at"=>...,
47
+ "expires"=>true
48
+ },
49
+ "extra"=>{
50
+
51
+ }
52
+ }
53
+ ```
26
54
 
27
55
  ## Development
28
56
 
@@ -32,7 +60,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
60
 
33
61
  ## Contributing
34
62
 
35
- 1. Fork it ( https://github.com/[my-github-username]/omniauth-medium/fork )
63
+ 1. Fork it ( https://github.com/adamkirkwood/omniauth-medium/fork )
36
64
  2. Create your feature branch (`git checkout -b my-new-feature`)
37
65
  3. Commit your changes (`git commit -am 'Add some feature'`)
38
66
  4. Push to the branch (`git push origin my-new-feature`)
@@ -0,0 +1,3 @@
1
+ MEDIUM_CLIENT_ID=a8fe2efad264
2
+ MEDIUM_CLIENT_SECRET=34000e8aa2039fc6c04a3c5f4ddc46f9a14bc26c
3
+ RACK_COOKIE_SECRET=some_secret
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'sinatra'
4
+ gem 'omniauth'
5
+ gem 'omniauth-oauth2', '~> 1.3.1'
6
+ gem 'omniauth-medium', path: '../../'
7
+ gem 'multi_json'
8
+ gem 'dotenv'
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: ../../
3
+ specs:
4
+ omniauth-medium (1.0.1)
5
+ omniauth-oauth2 (~> 1.3.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ dotenv (2.0.2)
11
+ faraday (0.9.2)
12
+ multipart-post (>= 1.2, < 3)
13
+ hashie (3.4.3)
14
+ jwt (1.5.2)
15
+ multi_json (1.11.2)
16
+ multi_xml (0.5.5)
17
+ multipart-post (2.0.0)
18
+ oauth2 (1.0.0)
19
+ faraday (>= 0.8, < 0.10)
20
+ jwt (~> 1.0)
21
+ multi_json (~> 1.3)
22
+ multi_xml (~> 0.5)
23
+ rack (~> 1.2)
24
+ omniauth (1.2.2)
25
+ hashie (>= 1.2, < 4)
26
+ rack (~> 1.0)
27
+ omniauth-oauth2 (1.3.1)
28
+ oauth2 (~> 1.0)
29
+ omniauth (~> 1.2)
30
+ rack (1.6.4)
31
+ rack-protection (1.5.3)
32
+ rack
33
+ sinatra (1.4.6)
34
+ rack (~> 1.4)
35
+ rack-protection (~> 1.4)
36
+ tilt (>= 1.3, < 3)
37
+ tilt (2.0.1)
38
+
39
+ PLATFORMS
40
+ ruby
41
+
42
+ DEPENDENCIES
43
+ dotenv
44
+ multi_json
45
+ omniauth
46
+ omniauth-medium!
47
+ omniauth-oauth2 (~> 1.3.1)
48
+ sinatra
@@ -0,0 +1,37 @@
1
+ require 'dotenv'
2
+ Dotenv.load
3
+
4
+ require 'rubygems'
5
+ require 'bundler/setup'
6
+ require 'sinatra'
7
+ require 'omniauth'
8
+ require 'omniauth-medium'
9
+
10
+ get '/' do
11
+ <<-HTML
12
+ <div>
13
+ Your credentials are :
14
+ <ul>
15
+ <li>client id : #{ENV['MEDIUM_CLIENT_ID']}</li>
16
+ <li>secret key : #{ENV['MEDIUM_CLIENT_SECRET']}</li>
17
+ </ul>
18
+ </div>
19
+ <a href='/auth/medium'>Sign in with Medium</a>
20
+ HTML
21
+ end
22
+
23
+ get '/auth/:provider/callback' do
24
+ content_type 'text/plain'
25
+ request.env['omniauth.auth'].to_hash.inspect rescue "No Data"
26
+ end
27
+
28
+ get '/auth/failure' do
29
+ content_type 'text/plain'
30
+ request.env['omniauth.auth'].to_hash.inspect rescue "No Data"
31
+ end
32
+
33
+ use Rack::Session::Cookie, secret: ENV['RACK_COOKIE_SECRET']
34
+
35
+ use OmniAuth::Builder do
36
+ provider :medium, ENV['MEDIUM_CLIENT_ID'], ENV['MEDIUM_CLIENT_SECRET'], scope: 'basicProfile,listPublications'
37
+ end
@@ -0,0 +1,2 @@
1
+ require "omniauth-medium/version"
2
+ require "omniauth/strategies/medium"
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Medium
3
- VERSION = "0.1.0"
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
@@ -0,0 +1,20 @@
1
+ require 'omniauth-oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class Medium < OmniAuth::Strategies::OAuth2
6
+ option :name, 'medium'
7
+ option :scope, 'basicProfile,publishPost'
8
+
9
+ option :client_options, {
10
+ site: 'https://api.medium.com/v1',
11
+ authorize_url: 'https://medium.com/m/oauth/authorize',
12
+ token_url: "https://api.medium.com/v1/tokens"
13
+ }
14
+
15
+ uid { info["id"] }
16
+
17
+ info { @info ||= access_token.get("me").parsed["data"] }
18
+ end
19
+ end
20
+ end
@@ -1,24 +1,26 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'omniauth/medium/version'
4
+ require 'omniauth-medium/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "omniauth-medium"
7
+ spec.name = 'omniauth-medium'
8
8
  spec.version = Omniauth::Medium::VERSION
9
- spec.authors = ["Adam Kirkwood"]
10
- spec.email = ["hello@adamkirkwood.com"]
9
+ spec.authors = ['Adam Kirkwood']
10
+ spec.email = ['hello@adamkirkwood.com']
11
11
 
12
- spec.summary = "OmniAuth Strategy for the Medium OAuth2 API"
13
- spec.description = "OmniAuth Strategy for the Medium OAuth2 API"
14
- spec.homepage = "https://github.com/adamkirkwood/omniauth-medium"
15
- spec.license = "MIT"
12
+ spec.summary = 'OmniAuth Strategy for the Medium OAuth2 API'
13
+ spec.description = 'OmniAuth Strategy for the Medium OAuth2 API'
14
+ spec.homepage = 'https://github.com/adamkirkwood/omniauth-medium'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.9"
23
- spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency 'bundler', '~> 1.9'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
+
25
+ spec.add_runtime_dependency 'omniauth-oauth2', '1.3.1'
24
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-medium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Kirkwood
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-08 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: omniauth-oauth2
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.1
41
55
  description: OmniAuth Strategy for the Medium OAuth2 API
42
56
  email:
43
57
  - hello@adamkirkwood.com
@@ -55,8 +69,13 @@ files:
55
69
  - Rakefile
56
70
  - bin/console
57
71
  - bin/setup
58
- - lib/omniauth/medium.rb
59
- - lib/omniauth/medium/version.rb
72
+ - examples/sinatra/.env
73
+ - examples/sinatra/Gemfile
74
+ - examples/sinatra/Gemfile.lock
75
+ - examples/sinatra/config.ru
76
+ - lib/omniauth-medium.rb
77
+ - lib/omniauth-medium/version.rb
78
+ - lib/omniauth/strategies/medium.rb
60
79
  - omniauth-medium.gemspec
61
80
  homepage: https://github.com/adamkirkwood/omniauth-medium
62
81
  licenses:
@@ -1,7 +0,0 @@
1
- require "omniauth/medium/version"
2
-
3
- module Omniauth
4
- module Medium
5
- # Your code goes here...
6
- end
7
- end