omniauth-douban-oauth2 0.0.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.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in omniauth-github.gemspec
4
+ gemspec
5
+
6
+ group :development, :test do
7
+ gem 'guard'
8
+ gem 'guard-rspec'
9
+ gem 'guard-bundler'
10
+ gem 'rb-fsevent'
11
+ gem 'growl'
12
+ end
data/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # OmniAuth-Douban-oauth2
2
+ ======================
3
+ This is the official OmniAuth strategy for authenticating to Douban. To use it, you'll need to sign up for an OAuth2 Application Key and Secret on the [Open Platform](https://www.douban.com/service/auth2/apikey/apply)
4
+
5
+
6
+ ## Basic Usage
7
+
8
+ ``` ruby
9
+ use OmniAuth::Builder do
10
+ provider :douban, ENV['DOUBAN_KEY'], ENV['DOUBAN_SECRET']
11
+ end
12
+ ```
@@ -0,0 +1,52 @@
1
+ require 'omniauth-oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class Douban < OmniAuth::Strategies::OAuth2
6
+ option :name, 'douban'
7
+ option :client_options, {
8
+ :site => 'https://api.douban.com',
9
+ :authorize_url => 'https://www.douban.com/service/auth2/auth',
10
+ :token_url => 'https://www.douban.com/service/auth2/token'
11
+ }
12
+
13
+ option :token_params, {
14
+ :parse => :json,
15
+ }
16
+
17
+ uid do
18
+ raw_info['id']
19
+ end
20
+
21
+ info do
22
+ {
23
+ :nickname => raw_info['uid'],
24
+ :name => raw_info['screen_name'],
25
+ :city => raw_info['city'],
26
+ :location => raw_info['location'],
27
+ :description => raw_info['description'],
28
+
29
+ :douban => {
30
+ :url => raw_info['url'],
31
+ :created_at => raw_info['created_at'],
32
+ :large_avatar => raw_info['large_avatar']
33
+ }
34
+ }
35
+ end
36
+
37
+ extra do
38
+ { :raw_info => raw_info }
39
+ end
40
+
41
+ def raw_info
42
+ access_token.options[:param_name] = 'access_token'
43
+ @raw_info ||= access_token.get('/shuo/users/@me').parsed
44
+ rescue ::Timeout::Error => e
45
+ raise e
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+
52
+ OmniAuth.config.add_camelization 'douban', 'Douban'
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module Douban
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require 'omniauth-douban/version'
2
+ require 'omniauth/strategies/douban'
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path('../lib/omniauth-douban/version', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.authors = ['Liluo']
7
+ gem.email = ['i@liluo.org']
8
+ gem.description = %q{OmniAuth OAuth2 strategy for Douban.}
9
+ gem.summary = %q{OmniAuth OAuth2 strategy for Douban.}
10
+ gem.homepage = 'https://github.com/liluo/omniauth-douban-oauth2'
11
+
12
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ gem.name = 'omniauth-douban-oauth2'
16
+ gem.require_paths = ['lib']
17
+ gem.version = OmniAuth::Douban::VERSION
18
+
19
+ gem.add_dependency 'omniauth', '~> 1.0'
20
+ gem.add_dependency 'omniauth-oauth2', '~> 1.1'
21
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-douban-oauth2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Liluo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: omniauth
16
+ requirement: &2160197700 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2160197700
25
+ - !ruby/object:Gem::Dependency
26
+ name: omniauth-oauth2
27
+ requirement: &2160196920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.1'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2160196920
36
+ description: OmniAuth OAuth2 strategy for Douban.
37
+ email:
38
+ - i@liluo.org
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - .gitignore
44
+ - Gemfile
45
+ - README.md
46
+ - lib/omniauth-douban-oauth2.rb
47
+ - lib/omniauth-douban/version.rb
48
+ - lib/omniauth/strategies/douban.rb
49
+ - omniauth-douban-oauth2.gemspec
50
+ homepage: https://github.com/liluo/omniauth-douban-oauth2
51
+ licenses: []
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 1.8.15
71
+ signing_key:
72
+ specification_version: 3
73
+ summary: OmniAuth OAuth2 strategy for Douban.
74
+ test_files: []