nm-gigya 0.0.8 → 0.0.13
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 +4 -4
- data/lib/gigya/connection.rb +4 -0
- data/lib/gigya/session.rb +120 -0
- data/lib/gigya.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 529877882c8e1a5a32d0323173f2a78415728337
|
4
|
+
data.tar.gz: c197dacbb05f7bdef51de6838d71e944aaa112e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da142cccb79cbf7cbc8b30a9835867bb6c82baa013927366ee5d5b1352c35e76a5387164852e0fb99d8c3c74e06922f7b8e8f144d9b67e83cab67c4b3d483631
|
7
|
+
data.tar.gz: 837cbed57220f5e4033d8f08c950b95048310e6c4f8af6628574f8cd01bef477e6fd27828d8c0a2761f938dba987f2b9f413545943d38171e394dc50ffb7b97e
|
data/lib/gigya/connection.rb
CHANGED
@@ -270,6 +270,10 @@ module Gigya
|
|
270
270
|
return user_jwt_info
|
271
271
|
end
|
272
272
|
|
273
|
+
def api_key
|
274
|
+
@opts[:api_key]
|
275
|
+
end
|
276
|
+
|
273
277
|
def login(username, password)
|
274
278
|
user_info = api_get("accounts", "login", {:loginID => username, :password => password, :targetEnv => "mobile"}, :throw_on_error => true)
|
275
279
|
uid = user_info["UID"]
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# This module is a mix-in that makes for much easier Gigya UI integration in Gigya apps.
|
2
|
+
# Essentially if you include this, it is very straightforward to do a Gigya login mechanism.
|
3
|
+
module Gigya::Session
|
4
|
+
def self.included(base)
|
5
|
+
base.include Gigya::ControllerUtils
|
6
|
+
base.extend ClassMethods
|
7
|
+
end
|
8
|
+
|
9
|
+
def destroy
|
10
|
+
cookies.delete Gigya::ControllerUtils::GIGYA_COOKIE_PARAM
|
11
|
+
end
|
12
|
+
|
13
|
+
def create
|
14
|
+
gigya_save_jwt(self.class.gigya_token_storage || :cookie)
|
15
|
+
|
16
|
+
if params[:redirect].blank?
|
17
|
+
redir = self.class.gigya_after_login_redirect
|
18
|
+
case redir
|
19
|
+
when String
|
20
|
+
redirect_to redir
|
21
|
+
when Symbol
|
22
|
+
redirect_to self.send(redir)
|
23
|
+
else
|
24
|
+
redirect_to redir.call
|
25
|
+
end
|
26
|
+
else
|
27
|
+
redirect_to params[:redirect]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def new
|
32
|
+
head_code = <<EOF
|
33
|
+
<script type='text/javascript' src='https://cdns.gigya.com/js/gigya.js?apikey=#{self.class.gigya_api_key}'></script>
|
34
|
+
<script type="text/javascript">
|
35
|
+
function did_login(evt, resp) {
|
36
|
+
form = document.getElementById("hidden-login-form");
|
37
|
+
gtok = document.getElementById("gigya-token");
|
38
|
+
|
39
|
+
gtok.value = resp.id_token;
|
40
|
+
form.submit();
|
41
|
+
}
|
42
|
+
|
43
|
+
var expire_time = #{self.class.gigya_token_expire_time};
|
44
|
+
gigya.accounts.showScreenSet({
|
45
|
+
screenSet: '#{self.class.gigya_screen_set}',
|
46
|
+
startScreen: '#{self.class.gigya_start_screen}',
|
47
|
+
containerID: 'gigya-screenset-container',
|
48
|
+
deviceType: 'mobile',
|
49
|
+
sessionExpiration: expire_time,
|
50
|
+
onAfterSubmit: function(evt) {
|
51
|
+
if(evt.form == 'gigya-login-form' && evt.response.errorCode == 0) {
|
52
|
+
gigya.accounts.getJWT({
|
53
|
+
fields: "#{self.class.gigya_jwt_fields}",
|
54
|
+
expiration: expire_time,
|
55
|
+
callback: function(resp) {
|
56
|
+
did_login(evt, resp);
|
57
|
+
}
|
58
|
+
});
|
59
|
+
}
|
60
|
+
}
|
61
|
+
});
|
62
|
+
</script>
|
63
|
+
EOF
|
64
|
+
body_code = <<EOF
|
65
|
+
<%= form_tag request.path.gsub('/new', ''), :id => "hidden-login-form" do %>
|
66
|
+
<%= hidden_field_tag :redirect, params[:redirect] %>
|
67
|
+
<%= hidden_field_tag :gigya_token, "", :id => "gigya-token" %>
|
68
|
+
<% end %>
|
69
|
+
<div class="gigya-screenset-class" id="gigya-screenset-container"></div>
|
70
|
+
EOF
|
71
|
+
|
72
|
+
if self.class.gigya_script_content_for.present?
|
73
|
+
head_code = "<% content_for :#{gigya_script_content_for} do %>#{head_code}<% end %>"
|
74
|
+
end
|
75
|
+
|
76
|
+
full_erb = head_code + body_code
|
77
|
+
render :inline => full_erb
|
78
|
+
end
|
79
|
+
|
80
|
+
module ClassMethods
|
81
|
+
def gigya_screen_set(val = nil)
|
82
|
+
return (@gigya_screen_set || "Default-RegistrationLogin") if val.nil?
|
83
|
+
@gigya_screen_set = val
|
84
|
+
end
|
85
|
+
|
86
|
+
def gigya_start_screen(val = nil)
|
87
|
+
return (@gigya_start_screen || "gigya-login-screen") if val.nil?
|
88
|
+
@gigya_start_screen = val
|
89
|
+
end
|
90
|
+
|
91
|
+
def gigya_token_storage(val = nil)
|
92
|
+
return (@gigya_token_storage || :cookie) if val.nil?
|
93
|
+
@gigya_token_storage = val
|
94
|
+
end
|
95
|
+
|
96
|
+
def gigya_after_login_redirect(val = nil)
|
97
|
+
return (@gigya_after_login_redirect || :root_path) if val.nil?
|
98
|
+
@gigya_after_login_redirect = val
|
99
|
+
end
|
100
|
+
|
101
|
+
def gigya_script_content_for(val = nil)
|
102
|
+
return @gigya_script_content_for if val.nil?
|
103
|
+
@gigya_script_content_for = val
|
104
|
+
end
|
105
|
+
|
106
|
+
def gigya_token_expire_time(val = nil)
|
107
|
+
return (@gigya_token_expire_time || (60 * 60 * 24)) if val.nil?
|
108
|
+
end
|
109
|
+
|
110
|
+
def gigya_jwt_fields(val = nil)
|
111
|
+
return (@gigya_jwt_fields || "firstName,lastName,email") if val.nil?
|
112
|
+
@gigya_jwt_fields = val
|
113
|
+
end
|
114
|
+
|
115
|
+
def gigya_api_key(val = nil)
|
116
|
+
return (@gigya_api_key || Gigya::Connection.shared_connection.api_key) if val.nil?
|
117
|
+
@gigya_api_key = val
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
data/lib/gigya.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nm-gigya
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Bartlett
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- lib/gigya.rb
|
49
49
|
- lib/gigya/connection.rb
|
50
50
|
- lib/gigya/controller_utils.rb
|
51
|
+
- lib/gigya/session.rb
|
51
52
|
homepage: http://www.newmedio.com/
|
52
53
|
licenses:
|
53
54
|
- MIT
|