google_sign_in 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/google_sign_in.gemspec +1 -1
- data/lib/google_sign_in/helper.rb +35 -25
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b1d9fd3259a66f7304ba5130515d1cfda99211a
|
4
|
+
data.tar.gz: 3d0d4a66f812fe29aa70981e6331d9d1c0fbcebe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3911369b014ca6aeb902f89fd14406a99e053d2184560cd0392af98df174e1753e47bf01b73c92e34ffa22e443756d5e0479b295cedce8dbe41c4533658707d4
|
7
|
+
data.tar.gz: fca8d21ba6b78465353764be25ea8d2b5f2d8c4814813b785ec09684508be9ad11a5ac7149065d4d89da9fa693ad08b0e3cdc6d970ffa9acacde3d4dc5089bdc
|
data/google_sign_in.gemspec
CHANGED
@@ -7,14 +7,17 @@ module GoogleSignIn
|
|
7
7
|
google_sign_in_javacript_include_tag +
|
8
8
|
google_sign_in_client_id_meta_tag
|
9
9
|
|
10
|
-
google_sign_in_javascript_tag +
|
10
|
+
google_sign_in_javascript_tag +
|
11
11
|
google_sign_in_hidden_form_tag(url: url) +
|
12
12
|
google_sign_in_click_handler(&block)
|
13
13
|
end
|
14
14
|
|
15
15
|
private
|
16
16
|
def google_sign_in_javacript_include_tag
|
17
|
-
javascript_include_tag "https://apis.google.com/js/
|
17
|
+
javascript_include_tag "https://apis.google.com/js/api.js", async: true, defer: true,
|
18
|
+
onload: "this.onload=function(){};setupGoogleSignIn()",
|
19
|
+
onreadystatechange: "if (this.readyState === 'complete') this.onload()",
|
20
|
+
data: { turbolinks_track: :reload, force_turbolinks_reload: Time.now.to_i }
|
18
21
|
end
|
19
22
|
|
20
23
|
def google_sign_in_client_id_meta_tag
|
@@ -22,39 +25,46 @@ module GoogleSignIn
|
|
22
25
|
end
|
23
26
|
|
24
27
|
def google_sign_in_hidden_form_tag(url:)
|
25
|
-
form_with url: url,
|
26
|
-
form.hidden_field
|
28
|
+
form_with url: url, html: { style: "display: none" } do |form|
|
29
|
+
form.hidden_field(:google_id_token, id: "google_sign_in_token") + form.submit(id: "google_sign_in_submit")
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
33
|
def google_sign_in_click_handler(&block)
|
31
|
-
tag.div(
|
34
|
+
tag.div(id: "google_sign_in_container", style: "visibility: hidden") { capture(&block) }
|
32
35
|
end
|
33
36
|
|
34
37
|
def google_sign_in_javascript_tag
|
35
|
-
javascript_tag
|
36
|
-
function
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
javascript_tag <<-JS.strip_heredoc
|
39
|
+
(function() {
|
40
|
+
function installAuthClient(callback) {
|
41
|
+
gapi.load("client:auth2", function() {
|
42
|
+
gapi.auth2.init().then(callback)
|
43
|
+
})
|
44
|
+
}
|
45
|
+
|
46
|
+
function installClickHandler() {
|
47
|
+
var element = document.getElementById("google_sign_in_container")
|
48
|
+
var options = new gapi.auth2.SigninOptionsBuilder()
|
49
|
+
options.setPrompt("select_account")
|
50
|
+
gapi.auth2.getAuthInstance().attachClickHandler(element, options, handleSignIn)
|
51
|
+
element.style.visibility = "visible"
|
52
|
+
}
|
48
53
|
|
49
|
-
|
50
|
-
|
51
|
-
|
54
|
+
function handleSignIn(googleUser) {
|
55
|
+
var token = googleUser.getAuthResponse().id_token
|
56
|
+
if (token) {
|
57
|
+
document.getElementById("google_sign_in_token").value = token
|
58
|
+
document.getElementById("google_sign_in_submit").click()
|
52
59
|
gapi.auth2.getAuthInstance().signOut()
|
53
60
|
}
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
|
61
|
+
}
|
62
|
+
|
63
|
+
window.setupGoogleSignIn = function() {
|
64
|
+
installAuthClient(installClickHandler)
|
65
|
+
}
|
66
|
+
})()
|
67
|
+
JS
|
58
68
|
end
|
59
69
|
end
|
60
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_sign_in
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|