【发布时间】:2019-04-05 20:32:59
【问题描述】:
我在公共文件夹中内置了 MEAN Stack 应用程序。Angular 应用程序,因此服务器可以在同一端口上运行这两个应用程序。这是我的后端路线
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带到我的角度。这是我的角度管理服务
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
}
}
}
所以你可以看到它是空的,因为我不知道如何从 express 中获取 json。 我已经为管理员登录页面创建了组件,如果我将该 loginaccess 带到我的管理员服务中,我将重定向到我的管理员登录页面。 感谢您的关注和帮助。
【问题讨论】: