-
Notifications
You must be signed in to change notification settings - Fork 27
/
auth.js
60 lines (56 loc) · 1.28 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
import { FBLoginManager } from 'react-native-facebook-login';
import GoogleSignIn from 'react-native-google-sign-in';
const Facebook = {
login: (permissions) => {
return new Promise((resolve, reject) => {
FBLoginManager.loginWithPermissions(permissions || ['email'], (error, data) => {
if (!error) {
resolve(data.credentials.token);
} else {
reject(error);
}
});
});
},
logout: () => {
return new Promise((resolve, reject) => {
FBLoginManager.logout((error, data) => {
if (!error) {
resolve(true);
} else {
reject(error);
}
});
});
}
}
const Google = {
configure: (options) => {
GoogleSignIn.configure(options);
},
login: () => {
return new Promise((resolve, reject) => {
GoogleSignIn.signInPromise()
.then((user) => {
resolve(user.accessToken);
})
.catch((err) => {
reject(err);
})
.done();
});
},
logout: () => {
return new Promise((resolve, reject) => {
GoogleSignIn.signOutPromise()
.then(() => {
resolve(true);
})
.catch((err) => {
reject(err);
});
});
}
}
const Auth = {Facebook, Google};
export default Auth;