glogin 0.2.1 → 0.2.2

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: 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