auth.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. login() {
  23. return firebase
  24. .auth()
  25. .signInWithRedirect(this.authProvider)
  26. .then(() => firebase.auth().getRedirectResult())
  27. .then(this.setKeys);
  28. }
  29. logout() {
  30. this.storage.clear();
  31. }
  32. async isLoggedIn() {
  33. let accessToken = await this.storage.get("accessTokenKey");
  34. let accessTokenKey = await this.storage.get("accessTokenSecret");
  35. return accessToken && accessTokenKey;
  36. }
  37. setKeys = result => {
  38. this.storage.set("accessTokenKey", result.credential["accessToken"]);
  39. this.storage.set("accessTokenSecret", result.credential["secret"]);
  40. this.storage.set("userId", result.additionalUserInfo["profile"]["id"]);
  41. };
  42. }