omniauth-mail_ru 0.0.1 → 1.0.0

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: 58dcfbd8819f3eafd414fff2864598ac34c770e5
4
- data.tar.gz: b43f2019c26e04645d608fa61cbb4a11eb83af5a
3
+ metadata.gz: 52416827d4fd6c0d2fc65d03a7de877fbb13bfd3
4
+ data.tar.gz: 1e8179b4b2758ae04d27caeaf994516cf120218f
5
5
  SHA512:
6
- metadata.gz: 324fb96ec83cec8e63e9881aca5378307c712daaf68a37072e56ab4e04447998073c0027de64a44ab9cd7337c09eb1ef99a5237c5b25198be08cd5d2a5fed5c6
7
- data.tar.gz: 5031378126eba9f5b83a513652465ef19254fac0fa93f50b14d4d36153760262adc76a2390dbc5ad3e0ed98c4fdd9cefa09fc6e04af1d2fa12082bc073af37be
6
+ metadata.gz: fd735efcf1a66b2ada79e00148da1dc21121f7d43d99a579ac7aa584249578638b2f29efcf0f2df9ef0072a5fda661b6a2ef1e83424b1b5df81cdb6fe2e83dcb
7
+ data.tar.gz: 0e17892479daff4cafcc90c3b7fca63817b6154c16fbba8a153c5bba45e5509038f02b51c93ab683b02e116a892dc5598bb3211b45f75a5eb8b11208a3c7757d
data/README.md CHANGED
@@ -1,47 +1,89 @@
1
1
  # OmniAuth Mail.ru
2
2
 
3
- This gem contains the Mail.ru strategy for OmniAuth.
3
+ This is unofficial [OmniAuth](https://github.com/intridea/omniauth) strategy for Mail.ru.
4
4
 
5
- ## Using This Strategy
5
+ ## Using
6
6
 
7
- First start by adding this gem to your Gemfile:
8
-
9
- ```ruby
10
- gem 'omniauth-mail_ru'
11
- ```
12
-
13
- If you need to use the latest HEAD version, you can do so with:
7
+ Add this gem to your Gemfile:
14
8
 
15
9
  ```ruby
16
10
  gem 'omniauth-mail_ru'
17
11
  ```
12
+ # Configuration
18
13
 
19
14
  Next, tell OmniAuth about this provider. For a Rails app, your `config/initializers/omniauth.rb` file should look like this:
20
15
 
21
16
  ```ruby
22
17
  Rails.application.config.middleware.use OmniAuth::Builder do
23
- provider :mail_ru, "API_KEY", "PRIVATE_KEY"
18
+ provider :mail_ru, 'API_KEY', 'PRIVATE_KEY'
24
19
  end
25
20
  ```
26
21
 
27
22
  Replace `"API_KEY"` and `"PRIVATE_KEY"` with the appropriate values you obtained (https://api.mail.ru).
28
23
 
29
- ```ruby
30
- Rails.application.config.middleware.use OmniAuth::Builder do
31
- provider :mail_ru, "API_KEY", "PRIVATE_KEY"
32
- end
33
- ```
34
-
35
24
  ## Authentication Hash
36
25
  An example auth hash available in `request.env['omniauth.auth']`:
37
26
 
38
27
  ```ruby
39
- PENDING
40
- ```
41
-
42
- ## Contributing
28
+ {
29
+ provider: 'mail_ru',
30
+ uid: '1111111111',
31
+ info: {
32
+ name: 'John Smith',
33
+ email: 'john@mail.ru',
34
+ nickname: 'JohnS',
35
+ first_name: 'John',
36
+ last_name: 'Smith',
37
+ image: 'http://avt.appsmail.ru/mail/john/_avatar50',
38
+ urls: {
39
+ 'Mailru' => 'http://my.mail.ru/mail/john/'
40
+ }
41
+ },
42
+ credentials: {
43
+ token: '4ec9286c2f...',
44
+ refresh_token: '351456424ad7c5...',
45
+ expires_at: 1411054463,
46
+ expires: true
47
+ },
48
+ extra: {
49
+ raw_info: {
50
+ pic_50: 'http://avt.appsmail.ru/mail/john/_avatar50',
51
+ friends_count: 256,
52
+ show_age: 1,
53
+ has_photosafe: 0,
54
+ nick: 'JohnS',
55
+ is_friend: 0,
56
+ is_online: 1,
57
+ has_pic: 1,
58
+ email: 'john@mail.ru',
59
+ pic_190: 'http://avt.appsmail.ru/mail/john/_avatar190',
60
+ referer_id: '',
61
+ pic_32: 'http://avt.appsmail.ru/mail/john/_avatar32',
62
+ referer_type: '',
63
+ last_visit: '1410961776',
64
+ uid: '1111111111',
65
+ app_installed: 1,
66
+ status_text: '',
67
+ pic_22: 'http://avt.appsmail.ru/mail/john/_avatar22',
68
+ age: 25,
69
+ last_name: 'Smith',
70
+ is_verified: 0,
71
+ pic_big: 'http://avt.appsmail.ru/mail/john/_avatarbig',
72
+ vip: 0,
73
+ birthday: '01.01.1901',
74
+ link: 'http://my.mail.ru/mail/john/',
75
+ pic_128: 'http://avt.appsmail.ru/mail/john/_avatar128',
76
+ sex: 0,
77
+ pic: 'http://avt.appsmail.ru/mail/john/_avatar',
78
+ pic_small: 'http://avt.appsmail.ru/mail/john/_avatarsmall',
79
+ pic_180: 'http://avt.appsmail.ru/mail/john/_avatar180',
80
+ first_name: 'John',
81
+ pic_40: 'http://avt.appsmail.ru/mail/john/_avatar40?1229336384'
82
+ }
83
+ }
84
+ }
43
85
 
44
- Please read the [contribution guidelines](CONTRIBUTING.md) for some information on how to get started. No contribution is too small.
86
+ ```
45
87
 
46
88
  ## License
47
89
 
@@ -0,0 +1,2 @@
1
+ require 'omniauth/mail_ru/version'
2
+ require 'omniauth/strategies/mail_ru'
@@ -1,5 +1,63 @@
1
- module Omniauth
1
+ module OmniAuth
2
2
  module MailRu
3
- VERSION = '0.0.1'
3
+ VERSION = '1.0.0'
4
4
  end
5
- end
5
+
6
+ {
7
+ provider: 'mail_ru',
8
+ uid: '1111111111',
9
+ info: {
10
+ name: 'John Smith',
11
+ email: 'john@mail.ru',
12
+ nickname: 'JohnS',
13
+ first_name: 'John',
14
+ last_name: 'Smith',
15
+ image: 'http://avt.appsmail.ru/mail/john/_avatar50',
16
+ urls: {
17
+ 'Mailru' => 'http://my.mail.ru/mail/john/'
18
+ }
19
+ },
20
+ credentials: {
21
+ token: '4ec9286c2f...',
22
+ refresh_token: '351456424ad7c5...',
23
+ expires_at: 1411054463,
24
+ expires: true
25
+ },
26
+ extra: {
27
+ raw_info: {
28
+ pic_50: 'http://avt.appsmail.ru/mail/john/_avatar50',
29
+ friends_count: 256,
30
+ show_age: 1,
31
+ has_photosafe: 0,
32
+ nick: 'JohnS',
33
+ is_friend: 0,
34
+ is_online: 1,
35
+ has_pic: 1,
36
+ email: 'john@mail.ru',
37
+ pic_190: 'http://avt.appsmail.ru/mail/john/_avatar190',
38
+ referer_id: '',
39
+ pic_32: 'http://avt.appsmail.ru/mail/john/_avatar32',
40
+ referer_type: '',
41
+ last_visit: '1410961776',
42
+ uid: '1111111111',
43
+ app_installed: 1,
44
+ status_text: '',
45
+ pic_22: 'http://avt.appsmail.ru/mail/john/_avatar22',
46
+ age: 25,
47
+ last_name: 'Smith',
48
+ is_verified: 0,
49
+ pic_big: 'http://avt.appsmail.ru/mail/john/_avatarbig',
50
+ vip: 0,
51
+ birthday: '01.01.1901',
52
+ link: 'http://my.mail.ru/mail/john/',
53
+ pic_128: 'http://avt.appsmail.ru/mail/john/_avatar128',
54
+ sex: 0,
55
+ pic: 'http://avt.appsmail.ru/mail/john/_avatar',
56
+ pic_small: 'http://avt.appsmail.ru/mail/john/_avatarsmall',
57
+ pic_180: 'http://avt.appsmail.ru/mail/john/_avatar180',
58
+ first_name: 'John',
59
+ pic_40: 'http://avt.appsmail.ru/mail/john/_avatar40?1229336384'
60
+ }
61
+ }
62
+ }
63
+ end
@@ -0,0 +1,57 @@
1
+ require 'omniauth-oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class MailRu < OmniAuth::Strategies::OAuth2
6
+ option :name, 'mail_ru'
7
+
8
+ option :client_options, {
9
+ site: 'https://connect.mail.ru/',
10
+ token_url: '/oauth/token',
11
+ authorize_url: '/oauth/authorize'
12
+ }
13
+
14
+ uid { access_token.params['x_mailru_vid'] }
15
+
16
+ info do
17
+ {
18
+ name: [raw_info['first_name'], raw_info['last_name']].join(' ').strip,
19
+ email: raw_info['email'],
20
+ nickname: raw_info['nick'],
21
+ first_name: raw_info['first_name'],
22
+ last_name: raw_info['last_name'],
23
+ image: (raw_info['has_pic'].to_i == 1) && raw_info['pic_50'] || raw_info['pic_small'],
24
+ urls: {
25
+ 'Mailru' => raw_info['link']
26
+ }
27
+ }
28
+ end
29
+
30
+ extra do
31
+ {
32
+ raw_info: raw_info
33
+ }
34
+ end
35
+
36
+ def raw_info
37
+ @raw_info ||= access_token.get('http://www.appsmail.ru/platform/api', params: params).parsed.first
38
+ end
39
+
40
+ def params
41
+ params = {
42
+ app_id: options.client_id,
43
+ method: 'users.getInfo',
44
+ session_key: access_token.token
45
+ }
46
+ params[:sig] = signature(params)
47
+
48
+ params
49
+ end
50
+
51
+ def signature(params)
52
+ params = params.sort.reduce('') { |m, (key, value)| m << "#{key}=#{value}"; m }
53
+ Digest::MD5.hexdigest([uid, params, options.client_secret].join)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -5,7 +5,7 @@ require 'omniauth/mail_ru/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'omniauth-mail_ru'
8
- spec.version = Omniauth::MailRu::VERSION
8
+ spec.version = OmniAuth::MailRu::VERSION
9
9
  spec.authors = ['Andrey Skuryatin']
10
10
  spec.email = ['andrey2004@gmai.com']
11
11
  spec.summary = %q{OmniAuth strategy for Mail.ru}
@@ -18,5 +18,5 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'omniauth-oauth2', '~> 1.1'
21
+ spec.add_dependency 'omniauth-oauth2', '~> 1.0'
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-mail_ru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Skuryatin
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
26
+ version: '1.0'
27
27
  description: OmniAuth strategy for Mail.ru
28
28
  email:
29
29
  - andrey2004@gmai.com
@@ -36,8 +36,9 @@ files:
36
36
  - LICENSE.txt
37
37
  - README.md
38
38
  - Rakefile
39
- - lib/omniauth/mail_ru.rb
39
+ - lib/omniauth-mail_ru.rb
40
40
  - lib/omniauth/mail_ru/version.rb
41
+ - lib/omniauth/strategies/mail_ru.rb
41
42
  - omniauth-mail_ru.gemspec
42
43
  homepage: https://github.com/andrey-skat/omniauth-mail_ru
43
44
  licenses:
@@ -1,7 +0,0 @@
1
- require 'omniauth/mail_ru/version'
2
-
3
- module Omniauth
4
- module MailRu
5
-
6
- end
7
- end