Я пытаюсь получить имя и другую информацию от jwt, и до сих пор могу получить только идентификатор пользователя.
Это папка маршрутов для аутентификации
const config = require("config");
const jwt = require("jsonwebtoken");
const { User } = require("../models/user");
const mongoose = require("mongoose");
const express = require("express");
const Joi = require("joi");
const _ = require("lodash");
const bcrypt = require("bcrypt");
const router = express.Router();
router.post("/", async (req, res) => {
const { error } = validate(req.body);
if (error) return res.status(400).send(error.details[0].message);
let user = await User.findOne({ email: req.body.email });
if (!user) return res.status(400).send("Invalide email or password.");
//compare the passowrd in the body and the password entered when registeration
const validePassword = await bcrypt.compare(req.body.password, user.password);
if (!validePassword)
return res.status(400).send("Invalide email or password.");
const token = user.generateAuthToken();
res.send(token);
});
function validate(req) {
const schema = {
email: Joi.string()
.required()
.min(5)
.max(250)
.email(),
password: Joi.string()
.required()
.min(7)
.max(1024)
};
return Joi.validate(req, schema);
}
module.exports = router;
это папка промежуточного программного обеспечения
const jwt = require("jsonwebtoken");
const config = require("config");
module.exports = function(req, res, next) {
const token = req.header("x-auth-token");
if (!token) return res.status(401).send("Access denied. No token provided.");
try {
const decoded = jwt.verify(token, config.get("jwtPrivateKey"));
req.user = decoded;
next();
} catch (ex) {
res.status(400).send("Invalid token.");
}
};
Это функция для получения текущего пользователя, когда он вошел в систему ...
export function getCurrentUser() {
try {
const jwt = localStorage.getItem(tokenKey);
return jwtDecode(jwt);
} catch (ex) {
return null;
}
}
Это все, что у меня есть в файле компонента моего профиля, где находится ComponentDidMount ...
import React, { Component } from "react";
import { Link } from "react-router-dom";
import NavBar from "./navBar";
import "../profile.css";
import { getCurrentUser } from "../services/authService";
class Profile extends Component {
state = {};
async componentDidMount() {
const currentUser = await getCurrentUser();
console.log(currentUser)
}
Когда я регистрирую currentUser, это то, что я получаю ...
{_id: "5d96a81f9a2f1a8bd485f76c", iat: 1570751361}
iat: 1570751361
_id: "5d96a81f9a2f1a8bd485f76c"
ПОЖАЛУЙСТА, ПОМОГИТЕ