Несанкционированное использование защищенного маршрута при отправке запроса от Angular к узлу - PullRequest
0 голосов
/ 25 марта 2019

User.js (бэкэнд)

// профиль

router.get('/profile', passport.authenticate('jwt', { session: false }), (req, res) => {
res.json({
    user: req.user,
})
});

Угловой

ВходКомпонент:

// onLoginSubmit () - это функция, основанная на событиях

onLoginSubmit(){
const user ={
  username:this.username,
  password:this.password
}

this._authService.authenticateUser(user).subscribe(data=>{
  console.log(data);
  this._dataServiceData=data;

  if(this._dataServiceData.success){
    this._authService.storeUserData(this._dataServiceData.token,this._dataServiceData.user);
    this._flahMessage.show('You are now Logged in !',{cssClass:'alert-success',timeout:3000});
    this._router.navigate(['dashboard']);
  }else{
    this._flahMessage.show(this._dataServiceData.msg,{cssClass:'alert-danger',timeout:3000});
    this._router.navigate(['login']);
  }
});

}

При успешном возвращении данных подпискиобъект:

успех: истина

токен: "носитель aGh .......... Q2rEjhnZ6XjXVKmwNFoiWFjEJk"

Тогда, если я получаю доступ к частному маршруту, например (профиль), он не авторизует его

Компонент профиля

export class ProfileComponent implements OnInit {
 private _dataService:any={};
 public user={};
  constructor(private _authService:AuthService,
          private _router:Router) { }

  ngOnInit() {
this._authService.getProfile().subscribe(data=>{
  console.log(data);
  this._dataService=data;
  this.user = this._dataService.user;
},err=>{
  console.log(err);
  return false;
})
  }

   }

AuthService (добавлено всем)

_ / **

authenticateUser(user){    **called from loginComponent**
   let headers = new HttpHeaders();
   headers.append('content-type','application/json');

   return this.http.post('http://localhost:8080/users/authenticate',user,{headers:headers})

  }

  getProfile(){          **called from profileComponent**
     let headers = new HttpHeaders();
     this.loadToken();
     headers.append('Authorization',this.token);
     headers.append('content-type','application/json');

     return this.http.get('http://localhost:8080/users/profile',{headers:headers})
        }

  loadToken(){
     const token = localStorage.getItem('id_token');
     this.token=token;
 }


  storeUserData(token,user){
     localStorage.setItem('id_token',token);
     localStorage.setItem('user',JSON.stringify(user));

     this.token = token;
     this.user=user;

  }

GitHub Repository ссылка

ПокаЯ получаю доступ к защищенному маршруту. Ошибка:

Http-сообщение об ошибке для http://localhost:8080/users/profile: 401 Несанкционированный

...