У меня есть приложение MEAN Stack. Стандартное приложение, встроенное в общую папку, так что сервер может запускать оба приложения на одном и том же порту. Вот мои back-end маршруты
const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const config = require('../configs/config');
const Admin = require('../models/Admin');
const _ = require('lodash');
router.get("/login",(req,res)=>{
console.log("loginAccess");
res.json({
loginaccess:true,
});
});
router.post('/auth',(req,res,next)=>{
const email = req.body.email;
const password = req.body.password;
Admin.getAdminByEmail(email, (err, admin) => {
if (err) throw err;
if (!admin) {
return res.json({ success: false, msg: 'Admin not found' });
}
Admin.comparePassword(password, admin.password, (err, isMatch) => {
if (err) throw err;
if (isMatch) {
let payload = {
id: admin._id,
email: admin.email,
role:config.ADMIN_HERO_STRING
};
const token = jwt.sign({ payload }, config.JWT_SECRET,{
expiresIn:3600
});
Admin.updateToken(email, token, (error, success) => {
if (error) return console.log("Error with updating token");
console.log(success);
res.json({
success: true,
token: "jwt " + token,
admin: {
id: admin._id,
email: admin.email
}
});
// res.redirect("/admins/home");
});
}
});
});
});
router.get('/manageApp',passport.authenticate('jwt', { session: false }),(req,res)=>{
res.json({email:req.user});
});
module.exports = router;
Я ищу способ, который может помочь мне взять этот ответ из маршрута входа в систему и использовать его в майском приложении. Для этого случая, когда я набираю localhost: 3000 / admin / login, он выводит ответ на страницу как json, так что моя проблема заключается в том, чтобы перенести этот jso на мой angular. А вот мой угловой сервис администратора
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Router } from '@angular/router';
@Injectable({
providedIn: 'root'
})
export class AdminService {
adminAccess:boolean=false;
constructor(private http: HttpClient, private router:Router) {
this.isRealAdmin();
}
isRealAdmin(){
if(this.adminAccess){
return this.router.navigate[('login')];
}else{
return false
}
}
}
Так что вы можете видеть, что он пуст, потому что я понятия не имею, как я могу взять JSON из Express.
Я создал компонент для страницы входа администратора, и если я возьму loginaccess в службу администрирования, я перенаправлю на страницу входа администратора.
Спасибо за внимание и за помощь.