@@ -1870,6 +1870,21 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"@ionic-native/google-plus": { | |||||
"version": "5.31.1", | |||||
"resolved": "https://registry.npmjs.org/@ionic-native/google-plus/-/google-plus-5.31.1.tgz", | |||||
"integrity": "sha512-xACJ9JDmoNhlHAuUSuyOelaOokWwkndI1J047flJbL0VUQgBxzlBGJcujB1FVKlabclXMAQeQJ30NhQcqWF9Fw==", | |||||
"requires": { | |||||
"@types/cordova": "^0.0.34" | |||||
}, | |||||
"dependencies": { | |||||
"@types/cordova": { | |||||
"version": "0.0.34", | |||||
"resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", | |||||
"integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" | |||||
} | |||||
} | |||||
}, | |||||
"@ionic-native/splash-screen": { | "@ionic-native/splash-screen": { | ||||
"version": "5.30.0", | "version": "5.30.0", | ||||
"resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.30.0.tgz", | "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.30.0.tgz", | ||||
@@ -4480,6 +4495,22 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"cordova-plugin-androidx": { | |||||
"version": "3.0.0", | |||||
"resolved": "https://registry.npmjs.org/cordova-plugin-androidx/-/cordova-plugin-androidx-3.0.0.tgz", | |||||
"integrity": "sha512-niMnhcxKsu4/oKTUbL0jRAnh6/cdoIVxRxJqj3uEyv8CVOlAj1sWhX+9b1XiAo9+bejAM9BbA21YK0mChfbVTA==", | |||||
"dev": true | |||||
}, | |||||
"cordova-plugin-androidx-adapter": { | |||||
"version": "1.1.3", | |||||
"resolved": "https://registry.npmjs.org/cordova-plugin-androidx-adapter/-/cordova-plugin-androidx-adapter-1.1.3.tgz", | |||||
"integrity": "sha512-W1SImn0cCCvOSTSfWWp5TnanIQrSuh2Bch+dcZXIzEn0km3Qb7VryeAqHhgBQYwwzC5Ollk1DtUAk/AJSojuZA==", | |||||
"dev": true, | |||||
"requires": { | |||||
"q": "^1.5.1", | |||||
"recursive-readdir": "^2.2.2" | |||||
} | |||||
}, | |||||
"cordova-plugin-device": { | "cordova-plugin-device": { | ||||
"version": "2.0.2", | "version": "2.0.2", | ||||
"resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.2.tgz", | "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.2.tgz", | ||||
@@ -4492,6 +4523,15 @@ | |||||
"integrity": "sha512-lhRsQCCluvjHyUKFnMNrHNCfKHFVnA0X9fCv4JaIEW5RZb6ff5f6aoq2TDKRvnbjCOnmLvB+DC4UUi88NudW5Q==", | "integrity": "sha512-lhRsQCCluvjHyUKFnMNrHNCfKHFVnA0X9fCv4JaIEW5RZb6ff5f6aoq2TDKRvnbjCOnmLvB+DC4UUi88NudW5Q==", | ||||
"dev": true | "dev": true | ||||
}, | }, | ||||
"cordova-plugin-googleplus": { | |||||
"version": "8.5.1", | |||||
"resolved": "https://registry.npmjs.org/cordova-plugin-googleplus/-/cordova-plugin-googleplus-8.5.1.tgz", | |||||
"integrity": "sha512-Az+8BWFIbNPy8+JrIN3nPWVhOBBT8FEmE4UdlUwuKaDKxM7910Jqr7KQY6rl0qD9fhU3/YwLwN+QpFOEnifmIg==", | |||||
"dev": true, | |||||
"requires": { | |||||
"q": "*" | |||||
} | |||||
}, | |||||
"cordova-plugin-ionic-keyboard": { | "cordova-plugin-ionic-keyboard": { | ||||
"version": "2.2.0", | "version": "2.2.0", | ||||
"resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", | "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", | ||||
@@ -11746,6 +11786,15 @@ | |||||
"picomatch": "^2.2.1" | "picomatch": "^2.2.1" | ||||
} | } | ||||
}, | }, | ||||
"recursive-readdir": { | |||||
"version": "2.2.2", | |||||
"resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", | |||||
"integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", | |||||
"dev": true, | |||||
"requires": { | |||||
"minimatch": "3.0.4" | |||||
} | |||||
}, | |||||
"reflect-metadata": { | "reflect-metadata": { | ||||
"version": "0.1.13", | "version": "0.1.13", | ||||
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", | ||||
@@ -23,6 +23,7 @@ | |||||
"@angular/service-worker": "~10.0.0", | "@angular/service-worker": "~10.0.0", | ||||
"@ionic-native/core": "^5.0.0", | "@ionic-native/core": "^5.0.0", | ||||
"@ionic-native/firebase-authentication": "^5.31.1", | "@ionic-native/firebase-authentication": "^5.31.1", | ||||
"@ionic-native/google-plus": "^5.31.1", | |||||
"@ionic-native/splash-screen": "^5.0.0", | "@ionic-native/splash-screen": "^5.0.0", | ||||
"@ionic-native/status-bar": "^5.0.0", | "@ionic-native/status-bar": "^5.0.0", | ||||
"@ionic/angular": "^5.0.0", | "@ionic/angular": "^5.0.0", | ||||
@@ -49,8 +50,11 @@ | |||||
"@types/node": "^12.11.1", | "@types/node": "^12.11.1", | ||||
"codelyzer": "^6.0.0", | "codelyzer": "^6.0.0", | ||||
"cordova-android": "^9.0.0", | "cordova-android": "^9.0.0", | ||||
"cordova-plugin-androidx": "^3.0.0", | |||||
"cordova-plugin-androidx-adapter": "^1.1.3", | |||||
"cordova-plugin-device": "^2.0.2", | "cordova-plugin-device": "^2.0.2", | ||||
"cordova-plugin-firebase-authentication": "^4.0.2", | "cordova-plugin-firebase-authentication": "^4.0.2", | ||||
"cordova-plugin-googleplus": "^8.5.1", | |||||
"cordova-plugin-ionic-keyboard": "^2.2.0", | "cordova-plugin-ionic-keyboard": "^2.2.0", | ||||
"cordova-plugin-ionic-webview": "^4.2.1", | "cordova-plugin-ionic-webview": "^4.2.1", | ||||
"cordova-plugin-splashscreen": "^5.0.2", | "cordova-plugin-splashscreen": "^5.0.2", | ||||
@@ -81,10 +85,17 @@ | |||||
"cordova-plugin-ionic-keyboard": {}, | "cordova-plugin-ionic-keyboard": {}, | ||||
"cordova-plugin-firebase-authentication": { | "cordova-plugin-firebase-authentication": { | ||||
"ANDROID_FIREBASE_AUTH_VERSION": "20.0.+" | "ANDROID_FIREBASE_AUTH_VERSION": "20.0.+" | ||||
}, | |||||
"cordova-plugin-androidx": {}, | |||||
"cordova-plugin-androidx-adapter": {}, | |||||
"cordova-plugin-googleplus": { | |||||
"REVERSED_CLIENT_ID": "com.alpha.kxip", | |||||
"WEB_APPLICATION_CLIENT_ID": "5602499136-aonjflj2acqva5gm4vvbuen4bc10sll1.apps.googleusercontent.com", | |||||
"PLAY_SERVICES_VERSION": "11.8.0" | |||||
} | } | ||||
}, | }, | ||||
"platforms": [ | "platforms": [ | ||||
"android" | "android" | ||||
] | ] | ||||
} | } | ||||
} | |||||
} |
@@ -18,6 +18,8 @@ import { HttpClientModule } from '@angular/common/http'; | |||||
import { DataService } from './services/data.service'; | import { DataService } from './services/data.service'; | ||||
import { GooglePlus } from '@ionic-native/google-plus/ngx'; | |||||
var firebaseConfig = { | var firebaseConfig = { | ||||
apiKey: "AIzaSyCYlFdGEsSA3bPlYYJMh3TcMiHzAUK2his", | apiKey: "AIzaSyCYlFdGEsSA3bPlYYJMh3TcMiHzAUK2his", | ||||
authDomain: "kxip-21.firebaseapp.com", | authDomain: "kxip-21.firebaseapp.com", | ||||
@@ -42,6 +44,7 @@ var firebaseConfig = { | |||||
providers: [ | providers: [ | ||||
StatusBar, | StatusBar, | ||||
SplashScreen, | SplashScreen, | ||||
GooglePlus, | |||||
DataService, | DataService, | ||||
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, | { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, | ||||
{ provide: HAMMER_GESTURE_CONFIG, useClass: MyHammerConfig }, | { provide: HAMMER_GESTURE_CONFIG, useClass: MyHammerConfig }, | ||||
@@ -3,7 +3,7 @@ | |||||
<section class="social-login" [ngClass]="{'active' : showSocialLogin }"> | <section class="social-login" [ngClass]="{'active' : showSocialLogin }"> | ||||
<section class="login-box"> | <section class="login-box"> | ||||
<button (click)="loginWithGoogle()"> Login with <img src="assets/icons/google.png"> </button> | |||||
<button (click)="doLogin()"> Login with <img src="assets/icons/google.png"> </button> | |||||
</section> | </section> | ||||
</section> | </section> | ||||
@@ -1,8 +1,10 @@ | |||||
import { Component, OnInit, ViewChild } from '@angular/core'; | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
import { IonSlides } from '@ionic/angular'; | import { IonSlides } from '@ionic/angular'; | ||||
import { AngularFireAuth } from "@angular/fire/auth"; | |||||
import firebase from 'firebase/app'; | |||||
import { Router } from '@angular/router'; | |||||
import { GooglePlus } from '@ionic-native/google-plus/ngx'; | |||||
import { Platform } from '@ionic/angular'; | |||||
import { AngularFireAuth } from '@angular/fire/auth'; | |||||
import firebase from 'firebase'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-fan-zone', | selector: 'app-fan-zone', | ||||
@@ -46,28 +48,28 @@ export class FanZonePage implements OnInit { | |||||
googleUserData: any = { }; | googleUserData: any = { }; | ||||
showSocialLogin: boolean = true; | showSocialLogin: boolean = true; | ||||
public loading: any; | |||||
public isGoogleLogin = false; | |||||
public user = null; | |||||
constructor( | constructor( | ||||
public afAuth: AngularFireAuth, | |||||
private router: Router | |||||
private google: GooglePlus, | |||||
private fireAuth: AngularFireAuth, | |||||
private platform: Platform, | |||||
) { } | ) { } | ||||
async loginWithGoogle() { | |||||
await this.afAuth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then((data) => { | |||||
this.googleUserData = { | |||||
name: data.user.displayName, | |||||
email: data.user.email, | |||||
profileImage: data.user.photoURL, | |||||
credentials: data.credential | |||||
}; | |||||
localStorage.googleUserData = JSON.stringify(this.googleUserData); | |||||
this.showSocialLogin = false; | |||||
}, (err) => { | |||||
alert("Failed to login"); | |||||
this.showSocialLogin = true; | |||||
}); | |||||
} | |||||
// async loginWithGoogle() { | |||||
// await this.afAuth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then((data) => { | |||||
// }, (err) => { | |||||
// alert("Failed to login"); | |||||
// this.showSocialLogin = true; | |||||
// }); | |||||
// } | |||||
ngOnInit() { | |||||
async ngOnInit() { | |||||
this.fanStories = [{ | this.fanStories = [{ | ||||
name: 'Amarpreet', | name: 'Amarpreet', | ||||
@@ -85,12 +87,7 @@ export class FanZonePage implements OnInit { | |||||
} | } | ||||
ngAfterViewInit() { | ngAfterViewInit() { | ||||
if (localStorage.googleUserData) { | |||||
this.googleUserData = JSON.parse(localStorage.googleUserData); | |||||
this.showSocialLogin = false; | |||||
} else { | |||||
this.showSocialLogin = true; | |||||
} | |||||
this.showSocialLogin = true; | |||||
} | } | ||||
generateEmojiStream() { | generateEmojiStream() { | ||||
@@ -123,4 +120,68 @@ export class FanZonePage implements OnInit { | |||||
}); | }); | ||||
} | } | ||||
doLogin(){ | |||||
let params: any; | |||||
if (this.platform.is('cordova')) { | |||||
if (this.platform.is('android')) { | |||||
params = { | |||||
webClientId: '5602499136-aonjflj2acqva5gm4vvbuen4bc10sll1.apps.googleusercontent.com', // webclientID 'string' | |||||
offline: true | |||||
}; | |||||
} else { | |||||
params = {}; | |||||
} | |||||
alert(JSON.stringify(params)); | |||||
this.google.login(params).then((response) => { | |||||
alert("called google login plugin"); | |||||
const { idToken, accessToken } = response; | |||||
this.onLoginSuccess(idToken, accessToken); | |||||
}).catch((error) => { | |||||
console.log(error); | |||||
alert('error:' + JSON.stringify(error)); | |||||
}); | |||||
} else { | |||||
console.log('else...'); | |||||
this.fireAuth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then(data => { | |||||
console.log('success in google login', data); | |||||
this.googleUserData = { | |||||
name: data.user.displayName, | |||||
email: data.user.email, | |||||
profileImage: data.user.photoURL, | |||||
credentials: data.credential | |||||
}; | |||||
this.showSocialLogin = false; | |||||
}).catch(err => { | |||||
alert(err.message); | |||||
}); | |||||
} | |||||
} | |||||
onLoginSuccess(accessToken, accessSecret) { | |||||
const credential = accessSecret ? firebase.auth.GoogleAuthProvider.credential(accessToken, accessSecret) : firebase.auth.GoogleAuthProvider.credential(accessToken); | |||||
this.fireAuth.signInWithCredential(credential).then((data) => { | |||||
alert('successfully logged in'); | |||||
this.googleUserData = { | |||||
name: data.user.displayName, | |||||
email: data.user.email, | |||||
profileImage: data.user.photoURL, | |||||
credentials: data.credential | |||||
}; | |||||
this.showSocialLogin = false; | |||||
}); | |||||
} | |||||
onLoginError(err) { | |||||
console.log(err); | |||||
} | |||||
logout() { | |||||
this.fireAuth.signOut().then(() => { | |||||
this.isGoogleLogin = false; | |||||
}); | |||||
} | |||||
} | } |
@@ -26,13 +26,13 @@ | |||||
<noscript>Please enable JavaScript to continue using this application.</noscript> | <noscript>Please enable JavaScript to continue using this application.</noscript> | ||||
<!-- The core Firebase JS SDK is always required and must be listed first --> | <!-- The core Firebase JS SDK is always required and must be listed first --> | ||||
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-app.js"></script> | |||||
<!-- <script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-app.js"></script> --> | |||||
<!-- TODO: Add SDKs for Firebase products that you want to use | <!-- TODO: Add SDKs for Firebase products that you want to use | ||||
https://firebase.google.com/docs/web/setup#available-libraries --> | https://firebase.google.com/docs/web/setup#available-libraries --> | ||||
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-analytics.js"></script> | |||||
<!-- <script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-analytics.js"></script> --> | |||||
<script> | |||||
<!-- <script> | |||||
// Your web app's Firebase configuration | // Your web app's Firebase configuration | ||||
// For Firebase JS SDK v7.20.0 and later, measurementId is optional | // For Firebase JS SDK v7.20.0 and later, measurementId is optional | ||||
var firebaseConfig = { | var firebaseConfig = { | ||||
@@ -47,7 +47,7 @@ | |||||
// Initialize Firebase | // Initialize Firebase | ||||
firebase.initializeApp(firebaseConfig); | firebase.initializeApp(firebaseConfig); | ||||
firebase.analytics(); | firebase.analytics(); | ||||
</script> | |||||
</script> --> | |||||
</body> | </body> | ||||
</html> | </html> |