auth.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { HttpClient } from '@angular/common/http';
  2. import { Injectable } from '@angular/core';
  3. import { Storage } from '@ionic/storage';
  4. import firebase from "firebase";
  5. @Injectable()
  6. export class AuthProvider {
  7. authProvider: any;
  8. constructor(public http: HttpClient, private storage: Storage) {
  9. console.log('Hello AuthProvider Provider');
  10. var config = {
  11. apiKey: "AIzaSyCMYjjtPPZak7wBBnh9sy8Yr3Fz1145MuM",
  12. authDomain: "hybridosn.firebaseapp.com",
  13. databaseURL: "https://hybridosn.firebaseio.com",
  14. storageBucket: "hybridosn.appspot.com",
  15. };
  16. firebase.initializeApp(config);
  17. this.authProvider = new firebase.auth.TwitterAuthProvider();
  18. this.authProvider.setCustomParameters({
  19. 'lang': 'de'
  20. });
  21. }
  22. isLoggedIn() {
  23. Promise.all([this.storage.get('accessTokenKey'), this.storage.get('accessTokenSecret')])
  24. .then(values => {
  25. console.log("looged in: " + (values[0] != null && values[1] != null));
  26. return values[0] != null && values[1] != null;
  27. });
  28. }
  29. login() {
  30. return firebase.auth().signInWithPopup(this.authProvider)
  31. .then(result => {
  32. this.storage.set('accessTokenKey', result.credential["accessToken"]);
  33. this.storage.set('accessTokenSecret', result.credential["secret"]);
  34. return true;
  35. })
  36. .catch(error => {
  37. console.log(error);
  38. return false;
  39. })
  40. }
  41. logout() {
  42. this.storage.clear();
  43. }
  44. }