Я защитил свой API с помощью веб-токена JSON.Как я могу подключить это к моему угловому приложению.В приложении не будет логина и регистрации.
Я провел много исследований в Google, YouTube и StackOverflow.Но я так и не нашел желаемого результата.
Я просто хочу показать данные людям, которые заходят на сайт.Я не хочу, чтобы кто-то за пределами веб-сайта имел доступ к файлу Json.
Вот мой express.js
const app = require('express')()
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const fs = require('fs')
const jwt = require('jsonwebtoken')
const PORT = 3002
app.use(cors())
app.use(bodyParser.json())
app.get('/', (req, res) => {
res.json({message: 'Api'})
})
app.post('/api/login',(req, res)=> {
const user = { id: 3 }
const token = jwt.sign({ user }, 'our_key')
res.json({
token: token
})
})
app.get('/api/protected', ensureToken,(req, res)=> {
jwt.verify(req.token, 'our_key',function (err, data) {
if (err) {
res.sendStatus(403)
} else {
fs.readFile('data.json','utf-8',(err,data)=>{
res.setHeader("Content-Type", "application/json; charset=utf-8")
data = JSON.parse(data)
console.log(data)
res.end(JSON.stringify(data,null,4))
})
}
})
})
function ensureToken(req, res, next) {
const bearerHeader = req.headers["authorization"]
if (typeof bearerHeader !== 'undefined') {
const bearer = bearerHeader.split(" ")
const bearerToken = bearer[1]
req.token = bearerToken
next()
} else {
res.sendStatus(403)
}
}
app.listen(PORT, function(){
console.log('Server http://localhost:'+ PORT + ' OK')
})
Везде, где angular и jwt подключены через систему входа / регистрации.Можем ли мы сделать это без этого?