glogin 0.2.1 → 0.2.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: 39525c79b9353af1f2baa96306fd38ee13d73796
4
- data.tar.gz: 3ae939f552d4ab34bb6b26de01b23b9944ac773d
3
+ metadata.gz: 344fc68993c5eb7e5234ee2039779ea46dabf2d5
4
+ data.tar.gz: f01d6910ce8a3066b44ef18aceb4ebe2623cfcba
5
5
  SHA512:
6
- metadata.gz: ecbacab1006d2c2cab12dce480cc7a6e2948c0d3977b7ab8570c5deafc939f822885a17c584bcbb65341e1d45e5bb1f623c69a4f62ebabc78e39b1d4badb7506
7
- data.tar.gz: b9a115d1c87718cece3763ededbe430ac7b6dcf5f52ec8b12242ae40cf0e6081a2a8fa474678e4685f615c08bbbd9b89b67404ebed1048c7c3093b061d8f75eb
6
+ metadata.gz: 2bed8f2877ddceae15a197f8ae0f81366b5cd0ac5d0e14f6389d9d5fc074f89ed537d915b670052c3a6442c589f119c8405b7313d92b08915fa43b10b95ea3ee
7
+ data.tar.gz: f223e37df06787e2a948372fff840ed77ec4fa30de65e0e63725db859ffc981e878fdda8748f60ab6a2486e000049055d58ec0a2c35032b2aafad37a1d3ca542
data/.simplecov CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2017 Yegor Bugayenko
3
+ Copyright (c) 2017-2018 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/README.md CHANGED
@@ -41,20 +41,21 @@ require 'sinatra/cookies'
41
41
  before '/*' do
42
42
  if cookies[:glogin]
43
43
  begin
44
- @user = Cookie::Closed.new(
44
+ @user = GLogin::Cookie::Closed.new(
45
45
  cookies[:glogin],
46
46
  # This must be some long text to be used to
47
47
  # encrypt the value in the cookie.
48
48
  secret
49
49
  ).to_user
50
50
  rescue OpenSSL::Cipher::CipherError => _
51
- @user = nil
51
+ # Nothing happens here, the user is not logged in.
52
+ cookies.delete(:glogin)
52
53
  end
53
54
  end
54
55
  end
55
56
  ```
56
57
 
57
- If the `glogin` cookie is coming it and it contains a valid data,
58
+ If the `glogin` cookie is coming in and contains a valid data,
58
59
  a local variable `@user` will be set to something like this:
59
60
 
60
61
  ```ruby
@@ -65,7 +66,7 @@ Next, we need a URL for GitHub OAuth callback:
65
66
 
66
67
  ```ruby
67
68
  get '/github-callback' do
68
- cookies[:glogin] = Cookie::Open.new(
69
+ cookies[:glogin] = GLogin::Cookie::Open.new(
69
70
  settings.glogin.user(params[:code]),
70
71
  # The same encryption secret that we were using above:
71
72
  secret
@@ -91,12 +92,12 @@ settings.glogin.login_uri
91
92
  ```
92
93
 
93
94
  For unit testing you can just provide an empty string as a `secret` for
94
- `Cookie::Open` and `Cookie::Closed` and the encryption will be disabled:
95
+ `GLogin::Cookie::Open` and `GLogin::Cookie::Closed` and the encryption will be disabled:
95
96
  whatever will be coming from the cookie will be trusted.
96
97
 
97
98
  I use this gem in [sixnines](https://github.com/yegor256/sixnines)
98
- and [0pdd](https://github.com/yegor256/0pdd) web apps.
99
- They both are using Sinatra.
99
+ and [0pdd](https://github.com/yegor256/0pdd) web apps (both open source),
100
+ on top of Sinatra.
100
101
 
101
102
  ## How to contribute?
102
103
 
@@ -106,7 +107,7 @@ Just submit a pull request. Make sure `rake` passes.
106
107
 
107
108
  (The MIT License)
108
109
 
109
- Copyright (c) 2017 Yegor Bugayenko
110
+ Copyright (c) 2017-2018 Yegor Bugayenko
110
111
 
111
112
  Permission is hereby granted, free of charge, to any person obtaining a copy
112
113
  of this software and associated documentation files (the 'Software'), to deal
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/glogin.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/lib/glogin.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -27,7 +27,7 @@ require_relative 'glogin/cookie'
27
27
 
28
28
  # GLogin main module.
29
29
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2017 Yegor Bugayenko
30
+ # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
31
31
  # License:: MIT
32
32
  module GLogin
33
33
  end
data/lib/glogin/auth.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require 'cgi'
28
28
 
29
29
  # GLogin main module.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2017 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  module GLogin
34
34
  #
@@ -40,6 +40,7 @@ module GLogin
40
40
  @id = id
41
41
  raise "GitHub client secret can't be nil" if secret.nil?
42
42
  @secret = secret
43
+ raise "Redirect URL can't be nil" if redirect.nil?
43
44
  @redirect = redirect
44
45
  end
45
46
 
@@ -51,6 +52,7 @@ module GLogin
51
52
  end
52
53
 
53
54
  def user(code)
55
+ raise 'Code can\'t be nil' if code.nil?
54
56
  uri = URI.parse('https://api.github.com/user')
55
57
  http = Net::HTTP.new(uri.host, uri.port)
56
58
  http.use_ssl = true
@@ -66,6 +68,7 @@ module GLogin
66
68
  private
67
69
 
68
70
  def access_token(code)
71
+ raise 'Code can\'t be nil' if code.nil?
69
72
  uri = URI.parse('https://github.com/login/oauth/access_token')
70
73
  http = Net::HTTP.new(uri.host, uri.port)
71
74
  http.use_ssl = true
data/lib/glogin/cookie.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@ require 'base64'
26
26
 
27
27
  # GLogin main module.
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2017 Yegor Bugayenko
29
+ # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
30
30
  # License:: MIT
31
31
  module GLogin
32
32
  #
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -22,8 +22,8 @@
22
22
 
23
23
  # GLogin main module.
24
24
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
25
- # Copyright:: Copyright (c) 2017 Yegor Bugayenko
25
+ # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module GLogin
28
- VERSION = '0.2.1'.freeze
28
+ VERSION = '0.2.2'.freeze
29
29
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/test/test__helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/test/test_glogin.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # Copyright (c) 2017 Yegor Bugayenko
3
+ # Copyright (c) 2017-2018 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -25,7 +25,7 @@ require_relative '../lib/glogin'
25
25
 
26
26
  # GLogin main module test.
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
28
- # Copyright:: Copyright (c) 2017 Yegor Bugayenko
28
+ # Copyright:: Copyright (c) 2017-2018 Yegor Bugayenko
29
29
  # License:: MIT
30
30
  class TestGLogin < Minitest::Test
31
31
  def test_basic
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glogin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-29 00:00:00.000000000 Z
11
+ date: 2018-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake