3
respostas

Login

Quando atualizo a página, ele não continua ele sai do login flavio.

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { TokenService } from '../token/token.service';
import { User } from './user';
import * as jtw_decode from 'jwt-decode';

@Injectable({ providedIn: 'root' })
export class UserService {

    private userSubject = new BehaviorSubject<User>(null);

    constructor(private tokenService: TokenService) {
        this.tokenService.hasToken() &&
        this.decodeAndNotify
     }

    setToken(token: string) {
        this.tokenService.setToken(token);
        this.decodeAndNotify();
    }

    getUser() {
     return this.userSubject.asObservable();
    }


    private decodeAndNotify(){
     const token = this.tokenService.getToken()   
     const user= jtw_decode(token) as User;
     this.userSubject.next(user);
    }
}
3 respostas
import { Component } from '@angular/core';
import { UserService } from '../user/user.service';
import { Observable } from 'rxjs';
import { User } from '../user/user';


@Component({
    selector :  'ap-header',
    templateUrl : './header.component.html'
})
export class HeaderComponent { 
    user$:Observable <User>;
    user:User;

    constructor (userService:UserService){
        this.user$ = userService.getUser();
        this.user$.subscribe(user => this.user = user);

    }
}
<header class="fixed-top">
    <nav class="navbar navbar-light bg-white">
        <a class="navbar-brand">ALURAPIC</a>
        <div>
            <i class="fa fa-user-circle"></i>
            <a class="ml-2">{{user?.name}}</a>
        </div>
    </nav>
</header>

Fala ai Amanda, tudo bem? Olhando os códigos é bem complicado achar o problema, posso deixar passar algum detalhe.

Posso te pedir um favor? Compartilha o projeto completo comigo, assim eu consigo simular o problema e analisar com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.