Моя проблема заключается в успешном получении authToken с помощью этих Javascript кодов, которые размещены на тестовой вкладке как на моих конечных точках входа, так и на входе. вкладка в почтальоне. Это тестовый код;
if(pm.response.code === 200){
pm.environment.set('authToken',pm.response.json().token);}
Ниже приведен мой рабочий процесс;
Auth код (authSign. js) ;
const jwt = require('jsonwebtoken')
const User = require('../models/users')
const auth = async(req,res,next)=>{
try{
// This is the actual line of code that does not work when using the js test script.But it does
//work when the test script is not used
const token = req.header('Authorization').replace('Bearer ','')
//there should be space after the Bearer!
const decoded = jwt.verify(token,process.env.JWT_SECRET)
const user = await User.findOne({_id:decoded._id,'tokens.token':token})
if(!user){
throw new Error()
}
req.token = token
req.user = user
next()
}
catch(e){
res.status(401).send({Error:'Please Authenticate'})
}} module.exports = auth
Auth Controller (авторизация js)
const User = require('../models/users')
// const Companies = require('../models/companies')
// Sign out from one device
exports.signout = async(req,res)=>{
try{
req.user.tokens = req.user.tokens.filter((token)=>{
return token.token!==req.token // save every token that is not same as the one entered.
})
await req.user.save()
res.send('Signed Out!')
}
catch(e){
res.status(500).send(e)
}}
Маршрут файл route / auth. js
const express = require('express')
const router = express.Router()
const{usersign,signin,signout} = require('../controller/auth')
const requireSignin = require('../controller/authSign')
//validators
const{runValidation} = require('../validators')
const{userSignUpValidator,userSignInValidator} = require('../validators/auth')
router.post('/user_sign',userSignUpValidator,runValidation,usersign)
router.post('/signin',userSignInValidator,runValidation,signin)
router.get('/signout',requireSignin,signout)
module.exports = router
Сервер. js file
const express = require('express')
const morgan = require('morgan')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const cors = require('express')
require('dotenv').config()
const mongoose = require('mongoose')
// bring in routes
const jobRouter = require('./routes/jobboard')
const authRouter = require('./routes/auth')
// const authCompanyRouter = require('./routes/authCompany.js')
// app
const app = express()
// database
mongoose.connect('mongodb://127.0.0.1:27017/xxxxxxxx',
{useNewUrlParser:true,useCreateIndex:true,useFindAndModify:false,useUnifiedTopology:
true}).then(()=>console.log('Database Connected'))
//middlewares
app.use(morgan('dev'))
app.use(bodyParser.json())
app.use(cookieParser())
// CORS
if(process.env.NODE_ENV == 'development'){
app.use(cors({origin:`${process.env.CLIENT_URL}`}))
}
// routes middleware
app.use('/api',jobRouter)
app.use('/api',authRouter)
//app.use('/api',authCompanyRouter)
// PORT
const port = process.env.PORT || 8000
app.listen(port,()=>{
console.log(`Server is running on port ${port}`)
})
Это код ошибки, который появляется ; «Please Authenticate»
Будет очень признателен, если я смогу получить помощь вовремя, поскольку эта проблема израсходована в течение 4 рабочих дней. Спасибо, ребята