remotty-rails 0.0.1
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 +7 -0
- data/.gitignore +24 -0
- data/Gemfile +18 -0
- data/LICENSE.txt +22 -0
- data/README.md +234 -0
- data/Rakefile +2 -0
- data/app/controllers/remotty/base_application_controller.rb +36 -0
- data/app/controllers/remotty/users/base_controller.rb +16 -0
- data/app/controllers/remotty/users/confirmations_controller.rb +25 -0
- data/app/controllers/remotty/users/omniauth_callbacks_controller.rb +102 -0
- data/app/controllers/remotty/users/passwords_controller.rb +47 -0
- data/app/controllers/remotty/users/registrations_controller.rb +132 -0
- data/app/controllers/remotty/users/sessions_controller.rb +48 -0
- data/app/models/remotty/base_user.rb +83 -0
- data/app/serializers/remotty/user_serializer.rb +30 -0
- data/config/locales/ko.yml +58 -0
- data/lib/generators/remotty/rails/install_generator.rb +68 -0
- data/lib/generators/remotty/rails/templates/add_column_to_users.rb +42 -0
- data/lib/generators/remotty/rails/templates/auth_token.rb +22 -0
- data/lib/generators/remotty/rails/templates/create_auth_tokens.rb +28 -0
- data/lib/generators/remotty/rails/templates/create_oauth_authentications.rb +28 -0
- data/lib/generators/remotty/rails/templates/oauth_authentication.rb +18 -0
- data/lib/generators/remotty/rails/templates/paperclip_hash.rb +1 -0
- data/lib/generators/remotty/rails/templates/user_serializer.rb +3 -0
- data/lib/remotty/rails.rb +8 -0
- data/lib/remotty/rails/authentication.rb +6 -0
- data/lib/remotty/rails/authentication/json_auth_failure.rb +29 -0
- data/lib/remotty/rails/authentication/strategies/token_header_authenticable.rb +71 -0
- data/lib/remotty/rails/engine.rb +72 -0
- data/lib/remotty/rails/version.rb +5 -0
- data/rdoc.sh +3 -0
- data/remotty-rails.gemspec +35 -0
- metadata +231 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
# User 모델에 이름, 프로필 사진, 메일 인증 관련 컬럼을 추가 migration 파일
|
2
|
+
#
|
3
|
+
# ==== Columns
|
4
|
+
#
|
5
|
+
# * +avatar+ - Paperclip style 사용자 프로필 이미지
|
6
|
+
# * +name+ - 사용자 이름
|
7
|
+
# * +use_password+ - 사용자 패스워드 (일반 회원가입시 +true+, oauth 로그인시 +false+)
|
8
|
+
# * +avatar+ - Paperclip style 사용자 프로필 이미지
|
9
|
+
# * +confirmation_token+ - Device's confirmation column
|
10
|
+
# * +confirmed_at+ - Device's confirmation column
|
11
|
+
# * +confirmation_sent_at+ - Device's confirmation column
|
12
|
+
# * +unconfirmed_email+ - Device's confirmation column
|
13
|
+
#
|
14
|
+
class AddColumnToUsers < ActiveRecord::Migration
|
15
|
+
def self.up
|
16
|
+
add_attachment :users, :avatar
|
17
|
+
add_column :users, :name, :string, limit: 50
|
18
|
+
add_column :users, :use_password, :boolean
|
19
|
+
|
20
|
+
add_column :users, :confirmation_token, :string
|
21
|
+
add_column :users, :confirmed_at, :datetime
|
22
|
+
add_column :users, :confirmation_sent_at , :datetime
|
23
|
+
add_column :users, :unconfirmed_email, :string
|
24
|
+
|
25
|
+
add_index :users, :confirmation_token, :unique => true
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.down
|
29
|
+
remove_attachment :users, :avatar
|
30
|
+
remove_column :users, :name
|
31
|
+
remove_column :users, :use_password
|
32
|
+
|
33
|
+
remove_index :users, :confirmation_token
|
34
|
+
|
35
|
+
remove_column :users, :unconfirmed_email
|
36
|
+
remove_column :users, :confirmation_sent_at
|
37
|
+
remove_column :users, :confirmed_at
|
38
|
+
remove_column :users, :confirmation_token
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Auth Token 모델
|
2
|
+
#
|
3
|
+
class AuthToken < ActiveRecord::Base
|
4
|
+
# relation
|
5
|
+
belongs_to :user
|
6
|
+
|
7
|
+
# validation
|
8
|
+
validates :user_id, presence: true
|
9
|
+
validates :token, presence: true
|
10
|
+
validates :source, presence: true
|
11
|
+
validates :source_info, presence: true
|
12
|
+
|
13
|
+
# source 정보 업데이트
|
14
|
+
# 보통 ip가 변경될 경우가 많을듯 하고 변하지 않더라도 최종 갱신시간을 변경함
|
15
|
+
def update_source(source, source_info)
|
16
|
+
if self.source != source || self.source_info != source_info
|
17
|
+
self.update(source: source, source_info: source_info)
|
18
|
+
else
|
19
|
+
self.touch
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Auth Token 모델생성 migration 파일
|
2
|
+
#
|
3
|
+
# ==== Columns
|
4
|
+
#
|
5
|
+
# * +user+ - User 모델
|
6
|
+
# * +token+ - 인증 토큰
|
7
|
+
# * token은 Devise.friendly_token로 생성하고 Digest::SHA512.hexdigest로 암호화하여 저장
|
8
|
+
# * +source+ - 토큰 생성자
|
9
|
+
# * web(default)
|
10
|
+
# * ios
|
11
|
+
# * android
|
12
|
+
# * ...
|
13
|
+
# * +source_info+ - 토큰 생성자 정보
|
14
|
+
# * ip(default)
|
15
|
+
# * ...
|
16
|
+
#
|
17
|
+
class CreateAuthTokens < ActiveRecord::Migration
|
18
|
+
def change
|
19
|
+
create_table :auth_tokens do |t|
|
20
|
+
t.references :user, index: true
|
21
|
+
t.string :token
|
22
|
+
t.string :source
|
23
|
+
t.string :source_info
|
24
|
+
|
25
|
+
t.timestamps
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# OAuth Authentication 모델생성 migration 파일
|
2
|
+
#
|
3
|
+
# ==== Columns
|
4
|
+
#
|
5
|
+
# * +user+ - User 모델
|
6
|
+
# * +provider+ - 인증 제공자
|
7
|
+
# * facebook
|
8
|
+
# * twitter
|
9
|
+
# * google
|
10
|
+
# * ...
|
11
|
+
# * +uid+ - 인증 ID
|
12
|
+
# * +access_token+ - access token
|
13
|
+
# * +access_token_secret+ - access token secret
|
14
|
+
#
|
15
|
+
class CreateOauthAuthentications < ActiveRecord::Migration
|
16
|
+
def change
|
17
|
+
create_table :oauth_authentications do |t|
|
18
|
+
t.references :user, index: true
|
19
|
+
t.string :provider, index: true
|
20
|
+
t.string :uid, index: true
|
21
|
+
t.string :access_token
|
22
|
+
t.string :access_token_secret
|
23
|
+
t.datetime :expires_at
|
24
|
+
|
25
|
+
t.timestamps
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# OAuth Authentication 모델
|
2
|
+
#
|
3
|
+
class OauthAuthentication < ActiveRecord::Base
|
4
|
+
# relation
|
5
|
+
belongs_to :user
|
6
|
+
|
7
|
+
# validation
|
8
|
+
validates :user_id, presence: true
|
9
|
+
validates :provider, presence: true
|
10
|
+
validates :uid, presence: true
|
11
|
+
|
12
|
+
# access_token, access_token_secret, expires 정보 업데이트
|
13
|
+
def update_with_credential(credential)
|
14
|
+
self.access_token = credential[:token]
|
15
|
+
self.access_token_secret = credential[:secret] if credential[:secret]
|
16
|
+
self.expires_at = Time.at(credential[:expires_at]).to_datetime if credential[:expires_at]
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# The secret key used by Paperclip.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Remotty::Rails
|
2
|
+
module Authentication
|
3
|
+
# return json Device error occur
|
4
|
+
class JsonAuthFailure < ::Devise::FailureApp
|
5
|
+
def http_auth_body
|
6
|
+
return i18n_message unless request_format
|
7
|
+
|
8
|
+
method = "to_#{request_format}"
|
9
|
+
if method == "to_xml"
|
10
|
+
{
|
11
|
+
error: {
|
12
|
+
code: "UNAUTHORIZED",
|
13
|
+
message: i18n_message
|
14
|
+
}
|
15
|
+
}.to_xml(:root => "errors")
|
16
|
+
elsif {}.respond_to?(method)
|
17
|
+
{
|
18
|
+
error: {
|
19
|
+
code: "UNAUTHORIZED",
|
20
|
+
message: i18n_message
|
21
|
+
}
|
22
|
+
}.send(method)
|
23
|
+
else
|
24
|
+
i18n_message
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'devise'
|
2
|
+
|
3
|
+
# Request Header의 auth token을 이용한 authentication
|
4
|
+
#
|
5
|
+
# ==== header
|
6
|
+
#
|
7
|
+
# +X-Auth-Email+ - e-mail
|
8
|
+
# +X-Auth-Token+ - auth token
|
9
|
+
# +X-Auth-Device+ - source (web(default)/ios/android/...)
|
10
|
+
# +X-Auth-Device-Info+ - source info (ip(default)/...)
|
11
|
+
#
|
12
|
+
module Remotty::Rails
|
13
|
+
module Authentication
|
14
|
+
module Strategies
|
15
|
+
class TokenHeaderAuthenticable < ::Devise::Strategies::Base
|
16
|
+
# use session?
|
17
|
+
def store?
|
18
|
+
super && !mapping.to.skip_session_storage.include?(:token_header_auth)
|
19
|
+
end
|
20
|
+
|
21
|
+
# 개발일 경우는 email만 있어도 통과! 아니면 email + token header 필요
|
22
|
+
def valid?
|
23
|
+
header_email && (ENV["RAILS_ENV"] == "development" || header_token)
|
24
|
+
end
|
25
|
+
|
26
|
+
# email에 해당하는 token을 auth_token 테이블에서 확인
|
27
|
+
def authenticate!
|
28
|
+
resource_scope = mapping.to
|
29
|
+
resource = resource_scope.find_by_email(header_email)
|
30
|
+
|
31
|
+
if resource
|
32
|
+
if ENV["RAILS_ENV"] == "development"# && header_token.nil?
|
33
|
+
success!(resource)
|
34
|
+
else
|
35
|
+
auth_token = resource.auth_tokens.where("token = ? and updated_at > ?",
|
36
|
+
Digest::SHA512.hexdigest(header_token), mapping.to.remember_for.ago).first
|
37
|
+
if auth_token
|
38
|
+
auth_token.update_source source, source_info
|
39
|
+
|
40
|
+
success!(resource)
|
41
|
+
else
|
42
|
+
fail!
|
43
|
+
end
|
44
|
+
end
|
45
|
+
else
|
46
|
+
fail!
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def source
|
53
|
+
request.headers["X-Auth-Device"] || 'web'
|
54
|
+
end
|
55
|
+
|
56
|
+
def source_info
|
57
|
+
request.headers["X-Auth-Device-Info"] || request.remote_ip
|
58
|
+
end
|
59
|
+
|
60
|
+
def header_email
|
61
|
+
request.headers["X-Auth-Email"]
|
62
|
+
end
|
63
|
+
|
64
|
+
def header_token
|
65
|
+
request.headers["X-Auth-Token"]
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'rails'
|
2
|
+
require 'rack/cors'
|
3
|
+
require 'active_model/serializer'
|
4
|
+
require 'active_model/array_serializer'
|
5
|
+
|
6
|
+
module Remotty::Rails
|
7
|
+
# 기본 설정
|
8
|
+
#
|
9
|
+
# * serializer
|
10
|
+
# * root key를 사용하지 않음
|
11
|
+
# * wrap parameters
|
12
|
+
# * enable for json
|
13
|
+
# * paperclip
|
14
|
+
# * url => '/system/:class/:attachment/:id_partition/:style/:hash.:extension'
|
15
|
+
# * default_url => nil (angular에서 처리)
|
16
|
+
# * Devise
|
17
|
+
# * skip session storage
|
18
|
+
# * use custom view
|
19
|
+
# * return json error occur
|
20
|
+
# * add token based authentication strategy
|
21
|
+
# * CORS
|
22
|
+
# * allow all
|
23
|
+
# * Rails middleware
|
24
|
+
# * Rack::Session::Pool
|
25
|
+
# * ActionDispatch::Session::CookieStore, :cookie_only => false, :defer => true
|
26
|
+
# * ActionDispatch::Flash
|
27
|
+
#
|
28
|
+
class Engine < ::Rails::Engine
|
29
|
+
initializer '0.remotty.rails.configuration' do |app|
|
30
|
+
# active serializer
|
31
|
+
ActiveModel::Serializer.root = false
|
32
|
+
ActiveModel::ArraySerializer.root = false
|
33
|
+
|
34
|
+
# wrap parameters
|
35
|
+
ActiveSupport.on_load(:action_controller) do
|
36
|
+
include ActionController::ParamsWrapper
|
37
|
+
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
|
38
|
+
end
|
39
|
+
|
40
|
+
# paperclip
|
41
|
+
Paperclip::Attachment.default_options.update({
|
42
|
+
:url => '/system/:class/:attachment/:id_partition/:style/:hash.:extension',
|
43
|
+
:default_url => ''
|
44
|
+
})
|
45
|
+
|
46
|
+
# Devise
|
47
|
+
Devise.setup do |config|
|
48
|
+
config.skip_session_storage = [:http_auth, :token_header_auth, :params_auth]
|
49
|
+
config.scoped_views = true
|
50
|
+
config.warden do |manager|
|
51
|
+
manager.failure_app = Remotty::Rails::Authentication::JsonAuthFailure
|
52
|
+
manager.strategies.add :token_header_authenticable, Remotty::Rails::Authentication::Strategies::TokenHeaderAuthenticable
|
53
|
+
manager.default_strategies(:scope => :user).unshift :token_header_authenticable
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# CORS
|
58
|
+
::Rails.application.config.middleware.use Rack::Cors do
|
59
|
+
allow do
|
60
|
+
origins "*"
|
61
|
+
resource "*", :headers => :any, :methods => [:get, :post, :delete, :put, :patch, :options]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# session for oauth/devise (no cookie)
|
66
|
+
::Rails.application.config.middleware.use Rack::Session::Pool
|
67
|
+
::Rails.application.config.middleware.use ActionDispatch::Session::CookieStore, :cookie_only => false, :defer => true
|
68
|
+
::Rails.application.config.middleware.use ActionDispatch::Flash
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
data/rdoc.sh
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'remotty/rails/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "remotty-rails"
|
8
|
+
spec.version = Remotty::Rails::VERSION
|
9
|
+
spec.authors = ["subicura", "bbugguj"]
|
10
|
+
spec.email = ["subicura@subicura.com", "bbugguj@gmail.com"]
|
11
|
+
spec.summary = 'rails base package by remotty'
|
12
|
+
spec.description = 'token based authentication and more useful library..'
|
13
|
+
spec.homepage = "https://github.com/remotty/remotty-rails"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency 'rack-cors', '>= 0.2.9'
|
22
|
+
spec.add_dependency 'active_model_serializers', '>= 0.8.1'
|
23
|
+
|
24
|
+
spec.add_dependency 'devise', '>= 3.2.4'
|
25
|
+
spec.add_dependency 'omniauth-facebook', '>= 1.6.0'
|
26
|
+
spec.add_dependency 'omniauth-twitter', '>= 1.0.1'
|
27
|
+
|
28
|
+
spec.add_dependency 'paperclip', '>= 4.1.1'
|
29
|
+
spec.add_dependency 'rmagick', '>= 2.13.2'
|
30
|
+
spec.add_dependency 'fog', '>= 1.22.0'
|
31
|
+
spec.add_dependency 'open_uri_redirections', '>= 0.1.4'
|
32
|
+
|
33
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
34
|
+
spec.add_development_dependency "rake"
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,231 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: remotty-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- subicura
|
8
|
+
- bbugguj
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-05-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rack-cors
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 0.2.9
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 0.2.9
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: active_model_serializers
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.8.1
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.8.1
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: devise
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 3.2.4
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 3.2.4
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: omniauth-facebook
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.6.0
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.6.0
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: omniauth-twitter
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.0.1
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.0.1
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: paperclip
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 4.1.1
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 4.1.1
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rmagick
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 2.13.2
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 2.13.2
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: fog
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.22.0
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.22.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: open_uri_redirections
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 0.1.4
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 0.1.4
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: bundler
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '1.6'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '1.6'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rake
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
description: token based authentication and more useful library..
|
169
|
+
email:
|
170
|
+
- subicura@subicura.com
|
171
|
+
- bbugguj@gmail.com
|
172
|
+
executables: []
|
173
|
+
extensions: []
|
174
|
+
extra_rdoc_files: []
|
175
|
+
files:
|
176
|
+
- ".gitignore"
|
177
|
+
- Gemfile
|
178
|
+
- LICENSE.txt
|
179
|
+
- README.md
|
180
|
+
- Rakefile
|
181
|
+
- app/controllers/remotty/base_application_controller.rb
|
182
|
+
- app/controllers/remotty/users/base_controller.rb
|
183
|
+
- app/controllers/remotty/users/confirmations_controller.rb
|
184
|
+
- app/controllers/remotty/users/omniauth_callbacks_controller.rb
|
185
|
+
- app/controllers/remotty/users/passwords_controller.rb
|
186
|
+
- app/controllers/remotty/users/registrations_controller.rb
|
187
|
+
- app/controllers/remotty/users/sessions_controller.rb
|
188
|
+
- app/models/remotty/base_user.rb
|
189
|
+
- app/serializers/remotty/user_serializer.rb
|
190
|
+
- config/locales/ko.yml
|
191
|
+
- lib/generators/remotty/rails/install_generator.rb
|
192
|
+
- lib/generators/remotty/rails/templates/add_column_to_users.rb
|
193
|
+
- lib/generators/remotty/rails/templates/auth_token.rb
|
194
|
+
- lib/generators/remotty/rails/templates/create_auth_tokens.rb
|
195
|
+
- lib/generators/remotty/rails/templates/create_oauth_authentications.rb
|
196
|
+
- lib/generators/remotty/rails/templates/oauth_authentication.rb
|
197
|
+
- lib/generators/remotty/rails/templates/paperclip_hash.rb
|
198
|
+
- lib/generators/remotty/rails/templates/user_serializer.rb
|
199
|
+
- lib/remotty/rails.rb
|
200
|
+
- lib/remotty/rails/authentication.rb
|
201
|
+
- lib/remotty/rails/authentication/json_auth_failure.rb
|
202
|
+
- lib/remotty/rails/authentication/strategies/token_header_authenticable.rb
|
203
|
+
- lib/remotty/rails/engine.rb
|
204
|
+
- lib/remotty/rails/version.rb
|
205
|
+
- rdoc.sh
|
206
|
+
- remotty-rails.gemspec
|
207
|
+
homepage: https://github.com/remotty/remotty-rails
|
208
|
+
licenses:
|
209
|
+
- MIT
|
210
|
+
metadata: {}
|
211
|
+
post_install_message:
|
212
|
+
rdoc_options: []
|
213
|
+
require_paths:
|
214
|
+
- lib
|
215
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - ">="
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
220
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
|
+
requirements:
|
222
|
+
- - ">="
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: '0'
|
225
|
+
requirements: []
|
226
|
+
rubyforge_project:
|
227
|
+
rubygems_version: 2.2.2
|
228
|
+
signing_key:
|
229
|
+
specification_version: 4
|
230
|
+
summary: rails base package by remotty
|
231
|
+
test_files: []
|