Помогите пожалуйста, я уже ничего не понимаю.... Проблема заключается с jwt токеном Invalid token specified: must be a string

Проект делаю для себя в качестве ознакомления. Не могу понять почему постоянно отправляет ошибку, Invalid token specified: must be a string. Появляется она после декодирование кода, когда хочу авторизоваться

import { jwtDecode } from "jwt-decode";
export const registration = async (email, password) => {
    const {data} = await $host.post('api/user/registration', {email, password, role: 'ADMIN'})
    localStorage.setItem('token', data.token)
    return jwtDecode(data.token)

}

export const login = async (email, password) => {
    const {data} = await $host.post('api/user/login', {email, password})
    localStorage.setItem('token', data.token)
    return jwtDecode(data.token)
}

export const check = async () => {
    const {data} = await $authHost.get('api/user/auth ',)
    localStorage.setItem('token', data.token)
    return jwtDecode(data.token)

}

Код для генерирования кода

const ApiError = require('../error/ApiError')
const  bcrypt = require('bcrypt')
const jwt = require('jsonwebtoken')
const {User, Basket} = require('../moduls/moduls')

const generateJwt = (id, email, role) => {
    return jwt.sign({
            id, email, role},
        process.env.SECRET_KEY,
        {expiresIn: '24h'}
    )
}
class UserControllers {
    async registration(req, res, next){
        const {email, password, role} = req.body
        if(!email || !password) {
            return next(ApiError.badRequest('Некорректный email или пароль'))
        }

        const candidate = await User.findOne({where: {email}})
        if (candidate){
            return next(ApiError.badRequest('Пользователь с таким email уже существует'))
        }
        const hashPassword = await bcrypt.hash(password, 5)
        const user = await User.create({email, role, password: hashPassword})
        const basket = await Basket.create({userId: user.id})
        const token = generateJwt(user.id, user.email, user.role)
        return res.json(token)
        }


    async login(req, res, next){
        const {email, password} = req.body
        const user = await User.findOne({where: {email}})
        if (!user) {
            return next(ApiError.internal('Пользователь не найден'))
        }
        let comparePassword = bcrypt.compareSync(password, user.password)
        if (!comparePassword) {
            return next(ApiError.internal('Указан неверный пароль'))
        }
        const token = generateJwt(user.id, user.email, user.role)
        return res.json(token)
    }
    async check(req, res, next){
        const token = generateJwt(req.user.id, req.user.email, req.user.role)
        return res.json(token)
    }
}

module.exports =  new UserControllers()

Ответы (0 шт):