Estoy enviando el 'token de autenticación' que se genera con JWT a la interfaz que está integrada en angular. El backend está construido en nodejs. cuando trato de acceder a la variable del token de autenticación desde la interfaz, aparece un error de sintaxis. ¿Cómo puedo acceder a este token de encabezado en mi código angular?
Solicitud de frontend en el componente
onSubmit(){ if(!this.signinForm.valid){ return; } const userDetails: SigninAccount = { email: this.signinForm.controls.email.value, password: this.signinForm.controls.password.value } this.loginservice.loginUser(userDetails).subscribe( data => { console.log(data); this.router.navigate(['/']) }, error => { console.log(error.error)} ) }Servicio frontend y las opciones de encabezado
const loginhttpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json', }) } loginUser(user: SigninAccount): Observable<SigninAccount> { const makeReqURL = `${this.apiURL}/login`; const loginUser = this.http.post<SignupAccount>(makeReqURL, user, httpOptions) return loginUser; }Respuesta de back-end
const userToken = jwt.sign({ _id: user._id }, process.env.TOKEN); res.header('auth-token', userToken).send(userToken)Captura de pantalla de la imagen en el navegador y el mensaje de error de sintaxis que aparece debido a console.log(data).
el "texto" también tiene el token JWT, que es lo mismo que el "token de autenticación", pero no sé cómo acceder a él en el código y tampoco sé cuál es el error de sintaxis.
Por favor ayuda. Muchas gracias por adelantado.
Debe haber algún problema de sintaxis en el código de fondo, por eso recibe el error. Use un poco de linter como EsLint que puede ayudar a detectar el error.
¿Cómo acceder al authToken?
Aquí está su nuevo código de back-end.
no configure el token en el encabezado, en lugar de enviarlo como un json.
const userToken = jwt.sign({ _id: user._id }, process.env.TOKEN); res.json({token: userToken}); El código de interfaz es correcto, obtendrá su token en la consola.
this.loginservice.loginUser(userDetails).subscribe( data => { console.log(data); const token = data.token; //Save to localStorage localStorage.setItem('token',token); this.router.navigate(['/']); }, error => { console.log(error.error)}