motion-authentication 2.0.0 → 2.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0464095a62b779410bfb6f77ce4af35a4fdac0931ad70fa643ab9f760e9f0818'
|
4
|
+
data.tar.gz: 3d689a129c84e215929ce56176d3307b0eee3638f23a50960e44005808451182
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8a63d60ff70107fa47e53c24b5d99c0ec1e3c5ff81a802655ef67902372653b438f672c78bff99d474a027ba2bda2b055d5cdc6c4479b9313b78f3f9c671094
|
7
|
+
data.tar.gz: d44090efc74dec5cf872dda15c083d1ea4d20e5d6e812d48e42104cc591f09a8e72b238778097fc6816da8247a62402ff54d7422634da65dbc2a199bf58265cc
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Need authorization? Use [`motion-authorization`](https://github.com/rubymotion-c
|
|
10
10
|
|
11
11
|
Add this line to your application's `Gemfile`, then run `bundle install`:
|
12
12
|
|
13
|
-
gem 'motion-authentication'
|
13
|
+
gem 'motion-authentication', '~> 2.0'
|
14
14
|
|
15
15
|
Next, run `rake pod:install` to install the CocoaPod dependencies.
|
16
16
|
|
@@ -20,7 +20,7 @@ Start by subclassing `Motion::Authentication` to create your own `Auth` class. S
|
|
20
20
|
|
21
21
|
```ruby
|
22
22
|
class Auth < Motion::Authentication
|
23
|
-
strategy
|
23
|
+
strategy DeviseCookieAuth
|
24
24
|
sign_in_url "https://example.com/api/v1/users/sign_in"
|
25
25
|
end
|
26
26
|
```
|
@@ -29,15 +29,15 @@ Available strategies:
|
|
29
29
|
|
30
30
|
* `DeviseCookieAuth` - This strategy supports the default way of authenticating with Devise, just as if you were submitting the sign in form using a web browser. It works by making an initial request to fetch the authenticity token, then submits the `email` and `password`, then stores the resulting cookie for authenticating future requests. If your user model has a different name (i.e. `AdminUser`), pass along the `namespace` option (i.e. `namespace: 'admin_user'`) when calling `sign_in`. Otherwise, namespace defaults to `:user`.
|
31
31
|
|
32
|
-
* `
|
32
|
+
* `DeviseSimpleTokenAuth` - This authentication strategy is based on [José Valim's example gist](https://gist.github.com/josevalim/fb706b1e933ef01e4fb6) and is compatible with the [`simple_token_authentication` gem](https://github.com/gonzalo-bulnes/simple_token_authentication), and the [Ember Simple Auth Devise adapter](http://romulomachado.github.io/2015/09/28/using-ember-simple-auth-with-devise.html).
|
33
33
|
|
34
34
|
This strategy takes `email` and `password`, makes a POST request to the `sign_in_url`, and expects the response to include `email` and `token` keys in the JSON response object.
|
35
35
|
|
36
|
-
* `
|
36
|
+
* `DeviseTokenAuth` - This authentication strategy is compatible with the [`devise_token_auth` gem](https://github.com/lynndylanhurley/devise_token_auth).
|
37
37
|
|
38
|
-
Signing up
|
38
|
+
**Signing up:** this strategy takes `email`, `password` and `password_confirmation`, makes a POST request to the `sign_up_url`, and expects the response to include `uid`, `access-token` and `client` keys in the response object headers.
|
39
39
|
|
40
|
-
Signing in
|
40
|
+
**Signing in:** this strategy takes `email` and `password`, makes a POST request to the `sign_in_url`, and expects the response to include `uid`, `access-token` and `client` keys in the response object headers.
|
41
41
|
|
42
42
|
### `.sign_in`
|
43
43
|
|
@@ -6,6 +6,8 @@ end
|
|
6
6
|
|
7
7
|
require 'motion-cocoapods' # TODO: this won't work for Android
|
8
8
|
require 'motion-keychain' # TODO: this won't work for Android
|
9
|
+
require 'motion-http'
|
10
|
+
require 'motion-html'
|
9
11
|
|
10
12
|
lib_dir_path = File.dirname(File.expand_path(__FILE__))
|
11
13
|
Motion::Project::App.setup do |app|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Motion
|
2
2
|
class Authentication
|
3
|
-
class
|
3
|
+
class DeviseSimpleTokenAuth
|
4
4
|
class << self
|
5
5
|
def sign_in(sign_in_url, params, &block)
|
6
|
-
|
6
|
+
HTTP.post(sign_in_url, json: { user: params }) do |response|
|
7
7
|
if response.success?
|
8
8
|
store_auth_tokens(response.object)
|
9
9
|
end
|
@@ -12,7 +12,7 @@ module Motion
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def sign_up(sign_up_url, params, &block)
|
15
|
-
|
15
|
+
HTTP.post(sign_up_url, json: { user: params }) do |response|
|
16
16
|
if response.success?
|
17
17
|
store_auth_tokens(response.object)
|
18
18
|
end
|
@@ -1,41 +1,38 @@
|
|
1
1
|
module Motion
|
2
2
|
class Authentication
|
3
|
-
class
|
3
|
+
class DeviseTokenAuth
|
4
4
|
class << self
|
5
|
-
|
6
5
|
def sign_in(sign_in_url, params, &block)
|
7
|
-
|
6
|
+
HTTP.post(sign_in_url, json: params) do |response|
|
8
7
|
if response.success?
|
9
|
-
store_auth_tokens(response.object,response.
|
8
|
+
store_auth_tokens(response.object, response.headers)
|
10
9
|
end
|
11
10
|
block.call(response)
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
15
14
|
def sign_up(sign_up_url, params, &block)
|
16
|
-
|
15
|
+
HTTP.post(sign_up_url, json: params) do |response|
|
17
16
|
if response.success?
|
18
|
-
store_auth_tokens(response.object,response.
|
17
|
+
store_auth_tokens(response.object, response.headers)
|
19
18
|
end
|
20
19
|
block.call(response)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
def store_auth_tokens(response,headers)
|
23
|
+
def store_auth_tokens(response, headers)
|
25
24
|
MotionKeychain.set :auth_uid, headers["uid"]
|
26
25
|
MotionKeychain.set :auth_token, headers["access-token"]
|
27
26
|
MotionKeychain.set :auth_client, headers["client"]
|
28
27
|
serialized_response = ""
|
29
|
-
response["data"].each do |key,value|
|
28
|
+
response["data"].each do |key, value|
|
30
29
|
case key
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
when "assets"
|
31
|
+
value.each do |eachasset|
|
32
|
+
serialized_response << eachasset["name"] + "·" + eachasset["qty"].to_s + ","
|
34
33
|
end
|
35
|
-
|
36
|
-
|
37
|
-
else
|
38
|
-
serialized_response << key + "·" + value.to_s + ","
|
34
|
+
else
|
35
|
+
serialized_response << key + "·" + value.to_s + ","
|
39
36
|
end
|
40
37
|
end
|
41
38
|
MotionKeychain.set :current_user, serialized_response
|
@@ -64,7 +61,7 @@ module Motion
|
|
64
61
|
block.call
|
65
62
|
end
|
66
63
|
|
67
|
-
def deserialize(mystring,arr_sep=',', key_sep='·')
|
64
|
+
def deserialize(mystring, arr_sep=',', key_sep='·')
|
68
65
|
array = mystring.split(arr_sep)
|
69
66
|
hash = {}
|
70
67
|
array.each do |e|
|
@@ -73,7 +70,6 @@ module Motion
|
|
73
70
|
end
|
74
71
|
return hash
|
75
72
|
end
|
76
|
-
|
77
73
|
end
|
78
74
|
end
|
79
75
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-authentication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Havens
|
@@ -92,7 +92,7 @@ files:
|
|
92
92
|
- lib/motion-authentication.rb
|
93
93
|
- lib/project/motion-authentication.rb
|
94
94
|
- lib/project/strategies/devise_cookie_auth.rb
|
95
|
-
- lib/project/strategies/
|
95
|
+
- lib/project/strategies/devise_simple_token_auth.rb
|
96
96
|
- lib/project/strategies/devise_token_auth_gem.rb
|
97
97
|
homepage: https://github.com/rubymotion-community/motion-authentication
|
98
98
|
licenses:
|