-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathauth.js
63 lines (60 loc) · 1.31 KB
/
auth.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
require('./libs/fb');
require('./libs/gapi');
const Facebook = {
init: (appId) => {
window.fbAsyncInit = function () {
FB.init({
appId: appId,
xfbml: true,
version: 'v2.7'
});
};
},
login: function(permissions) {
return new Promise((resolve) => {
if (typeof FB != "undefined") {
FB.login(function () {
if (FB.getAccessToken()) {
resolve(FB.getAccessToken());
}
}, { scope: permissions || 'public_profile,email' });
return true;
} else {
return false;
}
});
},
logout: () => {
return new Promise((resolve) => {
if (typeof FB != "undefined") {
FB.logout((response) => {
resolve();
return true;
});
} else {
return false;
}
});
}
}
const Google = {
init: (apiKey, clientId) => {
this.apiKey = apiKey;
this.clientId = clientId;
},
login: () => {
return new Promise((resolve) => {
gapi.client.setApiKey(this.apiKey);
gapi.auth.authorize({
'client_id': this.clientId,
scope: 'email profile',
prompt: 'select_account'
}, function (r) {
if (r.access_token) {
resolve(r.access_token);
}
});
});
}
}
export default { Facebook, Google };