auth.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. return Promise.all([this.storage.get('accessTokenKey'), this.storage.get('accessTokenSecret')])
  24. .then(values => {
  25. return values[0] != null && values[1] != null;
  26. })
  27. .catch(err => {
  28. console.log(err);
  29. return false;
  30. });
  31. }
  32. login() {
  33. return firebase.auth().signInWithRedirect(this.authProvider)
  34. .then(() => { return firebase.auth().getRedirectResult()})
  35. .then(result => {
  36. this.storage.set('accessTokenKey', result.credential["accessToken"]);
  37. this.storage.set('accessTokenSecret', result.credential["secret"]);
  38. return true;
  39. })
  40. .catch(error => {
  41. console.log(error);
  42. return false;
  43. })
  44. }
  45. logout() {
  46. this.storage.clear();
  47. }
  48. }