omniauth-kakao 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5843bce85550aa42c87b0b3839b5eccf8e1284d2
4
- data.tar.gz: f0ce72b76b8166e592698c428f0237d06a591498
3
+ metadata.gz: af773d971e3a8b86ac99c335e3658178694b47c7
4
+ data.tar.gz: 9af03cdf45f938068faf7ed4bd78e81186eedc7e
5
5
  SHA512:
6
- metadata.gz: 01217d804f966f95b641204c085f4c6f9df42ef4fa113b47c1a502c0ad347e57bf1e4aa6be90931cd3a3ad6e5695da1f96ed53a6bc3766767feb4362f9877521
7
- data.tar.gz: 8bf8ef15df823fa594b9950be673a58e9b8bf513ef722e814201c49cbc6785d17888e119999490f9babcbcc8958209d332a4f61401922413af6e3a4895ff4ba3
6
+ metadata.gz: 9540a11176807a5195f5d50e0e26849e6488c2f137cbc60cf69cc5feb3d4bdc1dc35556c963051fecc0cc87b217131af6476559e6d39d27d09e28817dc550475
7
+ data.tar.gz: d2fd6c6763a2bd52d1be736a0dba14e686622af0131a65695166b8f080af686d36cffa3b6f354d8c8196d909d329580bbd6222e760bc350200c464a978f2fcc1
data/README.md CHANGED
@@ -29,6 +29,9 @@ Here's a quick example, adding the middleware to a Rails app in `config/initiali
29
29
  ```ruby
30
30
  Rails.application.config.middleware.use OmniAuth::Builder do
31
31
  provider :kakao, ENV['KAKAO_CLIENT_ID']
32
+
33
+ # 또는 Redirect Path를 설정하고 싶다면(or if you want to customize your Redirect Path)
34
+ # provider :kakao, ENV['KAKAO_CLIENT_ID'], {:redirect_path => ENV['REDIRECT_PATH']}
32
35
  end
33
36
  ```
34
37
 
@@ -52,6 +55,9 @@ You can test omniauth-kakao in the `example/` folder.
52
55
  cd example/
53
56
  bundle install
54
57
  KAKAO_CLIENT_ID='<your-kakako-client-id>' ruby app.rb
58
+
59
+ # 또는 Redirect Path를 설정하고 싶다면(or if you want to customize your Redirect Path)
60
+ # KAKAO_CLIENT_ID='<your-kakako-client-id>' REDIRECT_PATH='<your-redirect-path>' ruby app.rb
55
61
  ```
56
62
 
57
63
  Then open `http://localhost:4567/` in your browser.
@@ -92,6 +98,10 @@ Here's an example *Auth Hash* available in `request.env['omniauth.auth']`:
92
98
  }
93
99
  ```
94
100
 
101
+ ## Contributors
102
+ * [Shayne Sung-Hee Kang](https://github.com/shaynekang)
103
+ * [Hong Chulju](https://github.com/fegs)
104
+
95
105
  ## Contribute
96
106
 
97
107
  1. Fork the repository.
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'sinatra', '~> 1.4.5'
4
+ gem 'shotgun', '~> 0.9'
4
5
  gem 'omniauth-kakao', :path => '../'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- omniauth-kakao (0.1.0)
4
+ omniauth-kakao (0.1.1)
5
5
  omniauth (~> 1.0)
6
6
  omniauth-oauth2 (~> 1.1)
7
7
 
@@ -10,28 +10,30 @@ GEM
10
10
  specs:
11
11
  faraday (0.9.0)
12
12
  multipart-post (>= 1.2, < 3)
13
- hashie (2.1.1)
14
- jwt (0.1.12)
15
- multi_json (1.10.0)
13
+ hashie (3.3.1)
14
+ jwt (1.0.0)
15
+ multi_json (1.10.1)
16
16
  multi_xml (0.5.5)
17
17
  multipart-post (2.0.0)
18
- oauth2 (0.9.3)
18
+ oauth2 (1.0.0)
19
19
  faraday (>= 0.8, < 0.10)
20
- jwt (~> 0.1.8)
20
+ jwt (~> 1.0)
21
21
  multi_json (~> 1.3)
22
22
  multi_xml (~> 0.5)
23
23
  rack (~> 1.2)
24
- omniauth (1.2.1)
25
- hashie (>= 1.2, < 3)
24
+ omniauth (1.2.2)
25
+ hashie (>= 1.2, < 4)
26
26
  rack (~> 1.0)
27
- omniauth-oauth2 (1.1.2)
27
+ omniauth-oauth2 (1.2.0)
28
28
  faraday (>= 0.8, < 0.10)
29
29
  multi_json (~> 1.3)
30
- oauth2 (~> 0.9.3)
30
+ oauth2 (~> 1.0)
31
31
  omniauth (~> 1.2)
32
32
  rack (1.5.2)
33
33
  rack-protection (1.5.3)
34
34
  rack
35
+ shotgun (0.9)
36
+ rack (>= 1.0)
35
37
  sinatra (1.4.5)
36
38
  rack (~> 1.4)
37
39
  rack-protection (~> 1.4)
@@ -43,4 +45,5 @@ PLATFORMS
43
45
 
44
46
  DEPENDENCIES
45
47
  omniauth-kakao!
48
+ shotgun (~> 0.9)
46
49
  sinatra (~> 1.4.5)
@@ -8,10 +8,12 @@ if client_id == nil
8
8
  raise NoClientIDError, "KAKAO_CLIENT_ID is nil. Please run example like `KAKAO_CLIENT_ID='<your-kakako-client-id>' ruby app.rb`"
9
9
  end
10
10
 
11
+ redirect_path = ENV['REDIRECT_PATH'] || OmniAuth::Strategies::Kakao::DEFAULT_REDIRECT_PATH
12
+
11
13
  use Rack::Session::Cookie
12
14
 
13
15
  use OmniAuth::Builder do
14
- provider :kakao, client_id
16
+ provider :kakao, client_id, {:redirect_path => redirect_path}
15
17
  end
16
18
 
17
19
  helpers do
@@ -24,6 +26,10 @@ helpers do
24
26
  end
25
27
  end
26
28
 
29
+ before do
30
+ @redirect_path = redirect_path
31
+ end
32
+
27
33
  get '/' do
28
34
  erb :index
29
35
  end
@@ -86,6 +92,11 @@ __END__
86
92
  font-size: 0;
87
93
  color: transparent;
88
94
  }
95
+
96
+ #redirect-path {
97
+ text-align: right;
98
+ margin: 20px 0 0 0;
99
+ }
89
100
  </style>
90
101
  </head>
91
102
  <body>
@@ -99,6 +110,7 @@ __END__
99
110
 
100
111
  <div class="panel-body">
101
112
  <a href="/auth/kakao" class="btn-kakao">카카오 계정으로 로그인</a>
113
+ <p id="redirect-path"><small>Redirect Path: <%= @redirect_path %></small></p>
102
114
  </div>
103
115
  </div>
104
116
  </div>
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Kakao
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -3,6 +3,8 @@ require 'omniauth-oauth2'
3
3
  module OmniAuth
4
4
  module Strategies
5
5
  class Kakao < OmniAuth::Strategies::OAuth2
6
+ DEFAULT_REDIRECT_PATH = "/oauth"
7
+
6
8
  option :name, 'kakao'
7
9
 
8
10
  option :client_options, {
@@ -26,7 +28,7 @@ module OmniAuth
26
28
 
27
29
  def initialize(app, *args, &block)
28
30
  super
29
- options[:callback_path] = "/oauth"
31
+ options[:callback_path] = options[:redirect_path] || DEFAULT_REDIRECT_PATH
30
32
  end
31
33
 
32
34
  def callback_phase
@@ -10,12 +10,12 @@ describe OmniAuth::Strategies::Kakao do
10
10
  OmniAuth.config.logger.level = 5
11
11
  end
12
12
 
13
- let(:middleware) do
13
+ def make_middleware(client_id, opts={})
14
14
  app = ->(env) { [200, env, "app"] }
15
15
 
16
- middleware = OmniAuth::Strategies::Kakao.new(app)
16
+ middleware = OmniAuth::Strategies::Kakao.new(app, opts)
17
17
  middleware.tap do |middleware|
18
- middleware.options.client_id = CLIENT_ID
18
+ middleware.options.client_id = client_id
19
19
  end
20
20
  end
21
21
 
@@ -29,6 +29,7 @@ describe OmniAuth::Strategies::Kakao do
29
29
  describe "GET /auth/kakao" do
30
30
  it "should redirect to authorize page" do
31
31
  request = make_request('/auth/kakao')
32
+ middleware = make_middleware(CLIENT_ID)
32
33
 
33
34
  code, env = middleware.call(request)
34
35
 
@@ -46,6 +47,27 @@ describe OmniAuth::Strategies::Kakao do
46
47
 
47
48
  actual_url.should == expect_url
48
49
  end
50
+
51
+ it "should customize redirect path" do
52
+ request = make_request('/auth/kakao')
53
+ middleware = make_middleware(CLIENT_ID, redirect_path: '/auth/kakao/callback')
54
+
55
+ code, env = middleware.call(request)
56
+
57
+ code.should == 302
58
+
59
+ expect_url = <<-EXPECT
60
+ https://kauth.kakao.com/oauth/authorize
61
+ ?client_id=#{CLIENT_ID}
62
+ &redirect_uri=http://#{SERVER_NAME}/auth/kakao/callback
63
+ &response_type=code
64
+ EXPECT
65
+ .gsub(/(\n|\t|\s)/, '')
66
+
67
+ actual_url = URI.decode(env['Location'].split("&state")[0])
68
+
69
+ actual_url.should == expect_url
70
+ end
49
71
  end
50
72
 
51
73
  describe "GET /oauth" do
@@ -93,6 +115,8 @@ describe OmniAuth::Strategies::Kakao do
93
115
  },
94
116
  })
95
117
 
118
+ middleware = make_middleware(CLIENT_ID)
119
+
96
120
  code, env = middleware.call(request)
97
121
 
98
122
  code.should == 200
@@ -133,6 +157,7 @@ describe OmniAuth::Strategies::Kakao do
133
157
  describe "GET /auth/kakao" do
134
158
  it "should redirect to callback url (/auth/kakao/callback)" do
135
159
  request = make_request("/auth/kakao")
160
+ middleware = make_middleware(CLIENT_ID)
136
161
  code, env = middleware.call(request)
137
162
 
138
163
  code.should == 302
@@ -145,6 +170,7 @@ describe OmniAuth::Strategies::Kakao do
145
170
  describe "GET /auth/kakao/callback" do
146
171
  it "should request registered mock" do
147
172
  request = make_request("/auth/kakao/callback")
173
+ middleware = make_middleware(CLIENT_ID)
148
174
  code, env = middleware.call(request)
149
175
 
150
176
  code.should == 200
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-kakao
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shayne Sung-Hee Kang