import { map } from 'rxjs/operators'; import { Injectable } from '@angular/core'; import { Http, Response } from '@angular/http'; import Web3 from 'web3'; import 'rxjs/add/operator/map'; @Injectable() export class AuthenticationService { // public web3; // public GovernanceContractAddress; // public GovernanceabiArray:Array; // console.log("Init"); // this.web3 = new Web3(window['web3'].currentProvider); // console.log(this.web3); // this.web3.eth.defaultAccount=this.web3.eth.coinbase; constructor(private http: Http) {} login(model: any) { // return this.http.post('/api/authenticate', JSON.stringify({ email: email, password: password })) return this.http.post('/api/authenticate', JSON.stringify({ model })).pipe( map((response: Response) => { // login successful if there's a jwt token in the response let user = response.json(); if (user && user.token) { console.log(user); // store user details and jwt token in local storage to keep user logged in between page refreshes localStorage.setItem('currentUser', JSON.stringify(user)); } }) ); } logout() { // remove user from local storage to log user out localStorage.removeItem('currentUser'); } }