lol_auth 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/lol_auth_manifest.js +2 -0
  6. data/app/assets/javascripts/lol_auth/application.js +13 -0
  7. data/app/assets/stylesheets/lol_auth/application.css +15 -0
  8. data/app/controllers/lol_auth/application_controller.rb +4 -0
  9. data/app/controllers/lol_auth/passwords_controller.rb +31 -0
  10. data/app/controllers/lol_auth/users_controller.rb +17 -0
  11. data/app/helpers/lol_auth/application_helper.rb +4 -0
  12. data/app/helpers/lol_auth/users_helper.rb +4 -0
  13. data/app/jobs/lol_auth/application_job.rb +4 -0
  14. data/app/mailers/lol_auth/application_mailer.rb +6 -0
  15. data/app/managers/facebook/base.rb +11 -0
  16. data/app/managers/facebook/login.rb +68 -0
  17. data/app/managers/user_reset_password_manager.rb +24 -0
  18. data/app/models/lol_auth/application_record.rb +5 -0
  19. data/app/models/user.rb +9 -0
  20. data/app/uploaders/avatar_uploader.rb +52 -0
  21. data/app/views/devise/mailer/reset_password_instructions.html.erb +893 -0
  22. data/app/views/layouts/lol_auth/application.html.erb +14 -0
  23. data/app/views/layouts/lol_auth/passwords.html.erb +17 -0
  24. data/app/views/lol_auth/passwords/_form.html.erb +31 -0
  25. data/app/views/lol_auth/passwords/_token_expired.html.erb +7 -0
  26. data/app/views/lol_auth/passwords/complete.html.erb +12 -0
  27. data/app/views/lol_auth/passwords/new.html.erb +5 -0
  28. data/app/views/lol_auth/users/_user.json.jbuilder +5 -0
  29. data/app/views/lol_auth/users/success.json.jbuilder +4 -0
  30. data/config/initializers/carrierwave.rb +10 -0
  31. data/config/initializers/devise_token_auth.rb +48 -0
  32. data/config/initializers/lol_users_config.rb +3 -0
  33. data/config/routes.rb +16 -0
  34. data/db/migrate/20170825152755_devise_token_auth_create_users.rb +54 -0
  35. data/db/migrate/20170828174614_add_avatar_to_users.rb +5 -0
  36. data/lib/generators/lol_auth/install/USAGE +8 -0
  37. data/lib/generators/lol_auth/install/install_generator.rb +17 -0
  38. data/lib/generators/lol_auth/install/templates/facebook_app.yml +11 -0
  39. data/lib/lol_auth.rb +5 -0
  40. data/lib/lol_auth/engine.rb +13 -0
  41. data/lib/lol_auth/version.rb +3 -0
  42. data/lib/tasks/lol_auth_tasks.rake +4 -0
  43. metadata +253 -0
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Lol users</title>
5
+ <%= stylesheet_link_tag "lol_auth/application", media: "all" %>
6
+ <%= javascript_include_tag "lol_auth/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ Loldesign
6
+ </title>
7
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
+ <meta name="format-detection" content="telephone=no">
10
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Playfair+Display:400,700,900" rel="stylesheet">
11
+ </head>
12
+ <body>
13
+ <div class="container">
14
+ <%= yield %>
15
+ </div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,31 @@
1
+ <% if params[:notice].present? %>
2
+ <div class="alert alert-danger mt-5" role="alert">
3
+ <%= params[:notice] %>
4
+ </div>
5
+ <% end %>
6
+
7
+ <%= form_tag create_password_path do%>
8
+ <div class="card mt-5">
9
+ <div class="card-header">
10
+ Olá <%= @user.name %> - Troque sua Senha
11
+ </div>
12
+
13
+ <div class="card-body">
14
+ <div class="form-group">
15
+ <%= label_tag 'user[password]', 'Nova Senha' %>
16
+ <%= password_field_tag 'user[password]', '', class: "form-control" %>
17
+ </div>
18
+
19
+ <div class="form-group">
20
+ <%= label_tag 'user[password]', 'Confirme a Nova Senha' %>
21
+ <%= password_field_tag 'user[password_confirmation]', '', class: "form-control" %>
22
+ </div>
23
+
24
+ <%= hidden_field_tag 'token', params[:token] %>
25
+ <%= submit_tag 'Trocar Senha', class: "btn btn-primary" %>
26
+ </div>
27
+ <div class="card-footer text-muted">
28
+ Loldesign - Recuperação de Senha
29
+ </div>
30
+ </div>
31
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <div class="card bg-light mb-3 mt-5">
2
+ <div class="card-header">Tente Novamente</div>
3
+ <div class="card-body">
4
+ <h4 class="card-title">Token Expirado</h4>
5
+ <p class="card-text">Por algum motivo o seu token está expirado, tente novamente no App informar o seu e-mail que enviaremos um novo e-mail.</p>
6
+ </div>
7
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="card mt-5">
2
+ <div class="card-header">
3
+ Senha Atualizada
4
+ </div>
5
+
6
+ <div class="card-body">
7
+ <h4 class="card-title">Sua senha foi atualizada com sucesso</h4>
8
+ </div>
9
+ <div class="card-footer text-muted">
10
+ Loldesign - Recuperação de Senha
11
+ </div>
12
+ </div>
@@ -0,0 +1,5 @@
1
+ <% if @user.present? %>
2
+ <%= render partial: 'form' %>
3
+ <% else %>
4
+ <%= render partial: 'token_expired' %>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ json.id user.id
2
+ json.name user.name
3
+ json.email user.email
4
+ json.avatar user.avatar
5
+ json.uid user.uid
@@ -0,0 +1,4 @@
1
+ json.message 'success'
2
+ json.data do
3
+ json.partial! 'user', user: @user
4
+ end
@@ -0,0 +1,10 @@
1
+ if Rails.env.production?
2
+ CarrierWave.configure do |config|
3
+ config.fog_credentials = {
4
+ :provider => 'AWS',
5
+ :aws_access_key_id => ENV['S3_ACCESS_KEY_ID'],
6
+ :aws_secret_access_key => ENV['S3_SECRET_KEY']
7
+ }
8
+ config.fog_directory = ENV['S3_BUCKET']
9
+ end
10
+ end
@@ -0,0 +1,48 @@
1
+ DeviseTokenAuth.setup do |config|
2
+ # By default the authorization headers will change after each request. The
3
+ # client is responsible for keeping track of the changing tokens. Change
4
+ # this to false to prevent the Authorization header from changing after
5
+ # each request.
6
+ config.change_headers_on_each_request = false
7
+
8
+ # By default, users will need to re-authenticate after 2 weeks. This setting
9
+ # determines how long tokens will remain valid after they are issued.
10
+ config.token_lifespan = 2.weeks
11
+
12
+ # Sets the max number of concurrent devices per user, which is 10 by default.
13
+ # After this limit is reached, the oldest tokens will be removed.
14
+ # config.max_number_of_devices = 10
15
+
16
+ # Sometimes it's necessary to make several requests to the API at the same
17
+ # time. In this case, each request in the batch will need to share the same
18
+ # auth token. This setting determines how far apart the requests can be while
19
+ # still using the same auth token.
20
+ # config.batch_request_buffer_throttle = 5.seconds
21
+
22
+ # This route will be the prefix for all oauth2 redirect callbacks. For
23
+ # example, using the default '/omniauth', the github oauth2 provider will
24
+ # redirect successful authentications to '/omniauth/github/callback'
25
+ # config.omniauth_prefix = "/omniauth"
26
+
27
+ # By default sending current password is not needed for the password update.
28
+ # Uncomment to enforce current_password param to be checked before all
29
+ # attribute updates. Set it to :password if you want it to be checked only if
30
+ # password is updated.
31
+ # config.check_current_password_before_update = :attributes
32
+
33
+ # By default we will use callbacks for single omniauth.
34
+ # It depends on fields like email, provider and uid.
35
+ # config.default_callbacks = true
36
+
37
+ # Makes it possible to change the headers names
38
+ # config.headers_names = {:'access-token' => 'access-token',
39
+ # :'client' => 'client',
40
+ # :'expiry' => 'expiry',
41
+ # :'uid' => 'uid',
42
+ # :'token-type' => 'token-type' }
43
+
44
+ # By default, only Bearer Token authentication is implemented out of the box.
45
+ # If, however, you wish to integrate with legacy Devise authentication, you can
46
+ # do so by enabling this flag. NOTE: This feature is highly experimental!
47
+ # config.enable_standard_devise_support = false
48
+ end
@@ -0,0 +1,3 @@
1
+ # LolAuth.configure do |config|
2
+ # config.facebook_app = config_for(:facebook_app)
3
+ # end
data/config/routes.rb ADDED
@@ -0,0 +1,16 @@
1
+ Rails.application.routes.draw do
2
+ root 'home#index'
3
+ # RESET PASSWORD
4
+ get '/passwords/new' , to: 'lol_auth/passwords#new' , as: :new_password
5
+ post '/passwords/create' , to: 'lol_auth/passwords#create' , as: :create_password
6
+ get '/passwords/complete', to: 'lol_auth/passwords#complete', as: :complete_password
7
+
8
+ namespace :api do
9
+ namespace :v1 do
10
+ mount_devise_token_auth_for 'User', at: 'auth'
11
+
12
+ # USER SIGNUP FACEBOOK
13
+ post '/users/facebook/signin', to: '/lol_auth/users#facebook_signin'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,54 @@
1
+ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Required
5
+ t.string :provider, :null => false, :default => "email"
6
+ t.string :uid, :null => false, :default => ""
7
+
8
+ ## Database authenticatable
9
+ t.string :encrypted_password, :null => false, :default => ""
10
+
11
+ ## Recoverable
12
+ t.string :reset_password_token
13
+ t.datetime :reset_password_sent_at
14
+
15
+ ## Rememberable
16
+ t.datetime :remember_created_at
17
+
18
+ ## Trackable
19
+ t.integer :sign_in_count, :default => 0, :null => false
20
+ t.datetime :current_sign_in_at
21
+ t.datetime :last_sign_in_at
22
+ t.string :current_sign_in_ip
23
+ t.string :last_sign_in_ip
24
+
25
+ ## Confirmable
26
+ t.string :confirmation_token
27
+ t.datetime :confirmed_at
28
+ t.datetime :confirmation_sent_at
29
+ t.string :unconfirmed_email # Only if using reconfirmable
30
+
31
+ ## Lockable
32
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
33
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
34
+ # t.datetime :locked_at
35
+
36
+ ## User Info
37
+ t.string :name
38
+ t.string :nickname
39
+ t.string :image
40
+ t.string :email
41
+
42
+ ## Tokens
43
+ t.json :tokens
44
+
45
+ t.timestamps
46
+ end
47
+
48
+ add_index :users, :email, unique: true
49
+ add_index :users, [:uid, :provider], unique: true
50
+ add_index :users, :reset_password_token, unique: true
51
+ add_index :users, :confirmation_token, unique: true
52
+ # add_index :users, :unlock_token, unique: true
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ class AddAvatarToUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :users, :avatar, :string
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Init LolAuth to your project
3
+
4
+ Example:
5
+ rails generate initializer
6
+
7
+ This will create:
8
+ config/facebook_app.yml
@@ -0,0 +1,17 @@
1
+ class LolAuth::InstallGenerator < Rails::Generators::Base
2
+ desc "Install LolAuth to your ptoject"
3
+
4
+ source_root File.expand_path('../templates', __FILE__)
5
+
6
+ def add_facebook_config
7
+ application "config.facebook_app = config_for(:facebook_app)"
8
+ end
9
+
10
+ def copy_fcebook_file
11
+ copy_file "facebook_app.yml", "config/facebook_app.yml"
12
+ end
13
+
14
+ def copy_migrations
15
+ rake "lol_auth:install:migrations"
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ development:
2
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
3
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
4
+
5
+ test:
6
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
7
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
8
+
9
+ production:
10
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
11
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
data/lib/lol_auth.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "lol_auth/engine"
2
+
3
+ module LolAuth
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,13 @@
1
+ module LolAuth
2
+ require 'devise_token_auth'
3
+
4
+ class Engine < ::Rails::Engine
5
+ require 'carrierwave'
6
+ require 'fog'
7
+ require 'mini_magick'
8
+ require 'koala'
9
+ require 'jbuilder'
10
+
11
+ isolate_namespace LolAuth
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module LolAuth
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lol_auth do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lol_auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eduardo Zaghi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: koala
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: devise_token_auth
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: paranoia
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pg
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.18.4
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.18.4
97
+ - !ruby/object:Gem::Dependency
98
+ name: jbuilder
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.6.3
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.6.3
111
+ - !ruby/object:Gem::Dependency
112
+ name: carrierwave
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: fog
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.38'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.38'
139
+ - !ruby/object:Gem::Dependency
140
+ name: mini_magick
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: mailcatcher
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: Add auth features
182
+ email:
183
+ - eduardo@loldesign.com.br
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - MIT-LICENSE
189
+ - README.md
190
+ - Rakefile
191
+ - app/assets/config/lol_auth_manifest.js
192
+ - app/assets/javascripts/lol_auth/application.js
193
+ - app/assets/stylesheets/lol_auth/application.css
194
+ - app/controllers/lol_auth/application_controller.rb
195
+ - app/controllers/lol_auth/passwords_controller.rb
196
+ - app/controllers/lol_auth/users_controller.rb
197
+ - app/helpers/lol_auth/application_helper.rb
198
+ - app/helpers/lol_auth/users_helper.rb
199
+ - app/jobs/lol_auth/application_job.rb
200
+ - app/mailers/lol_auth/application_mailer.rb
201
+ - app/managers/facebook/base.rb
202
+ - app/managers/facebook/login.rb
203
+ - app/managers/user_reset_password_manager.rb
204
+ - app/models/lol_auth/application_record.rb
205
+ - app/models/user.rb
206
+ - app/uploaders/avatar_uploader.rb
207
+ - app/views/devise/mailer/reset_password_instructions.html.erb
208
+ - app/views/layouts/lol_auth/application.html.erb
209
+ - app/views/layouts/lol_auth/passwords.html.erb
210
+ - app/views/lol_auth/passwords/_form.html.erb
211
+ - app/views/lol_auth/passwords/_token_expired.html.erb
212
+ - app/views/lol_auth/passwords/complete.html.erb
213
+ - app/views/lol_auth/passwords/new.html.erb
214
+ - app/views/lol_auth/users/_user.json.jbuilder
215
+ - app/views/lol_auth/users/success.json.jbuilder
216
+ - config/initializers/carrierwave.rb
217
+ - config/initializers/devise_token_auth.rb
218
+ - config/initializers/lol_users_config.rb
219
+ - config/routes.rb
220
+ - db/migrate/20170825152755_devise_token_auth_create_users.rb
221
+ - db/migrate/20170828174614_add_avatar_to_users.rb
222
+ - lib/generators/lol_auth/install/USAGE
223
+ - lib/generators/lol_auth/install/install_generator.rb
224
+ - lib/generators/lol_auth/install/templates/facebook_app.yml
225
+ - lib/lol_auth.rb
226
+ - lib/lol_auth/engine.rb
227
+ - lib/lol_auth/version.rb
228
+ - lib/tasks/lol_auth_tasks.rake
229
+ homepage: http://loldesign.com.br
230
+ licenses:
231
+ - MIT
232
+ metadata: {}
233
+ post_install_message:
234
+ rdoc_options: []
235
+ require_paths:
236
+ - lib
237
+ required_ruby_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ required_rubygems_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ requirements: []
248
+ rubyforge_project:
249
+ rubygems_version: 2.4.5.1
250
+ signing_key:
251
+ specification_version: 4
252
+ summary: Lol Auth
253
+ test_files: []