Tag: jwt

ctx.render不会redirect页面

我很确定这是因为ctx.render函数只是为了渲染页面,但我不知道该怎么做才能做我想做的事情。 基本上,我试图redirect用户到用户的mypagelogin后,在标题中的jwt令牌,所以我用axios发送请求到服务器,服务器路由器function呈现dynamicpug文件与给定的数据。 我想把jwt数据放到帕格文件中,但是当我发送请求的时候,页面只是刷新自己,实际上并没有redirect到mypage。 这是代码 客户 try { let res = await axios(loginOpt) await store.set('jwtToken', res.data.token) let mpOpt = {headers: {"Authorization": 'Bearer ' + store.get('jwtToken')}} axios.get(`/u/${payload.email}`, mpOpt) } catch (e) { console.error("failed to send login request", e) } 路由器 router.get('/:userName', async (ctx, next) => { console.log("jwt TOKEN IS", ctx.header.authorization) let renderData = { userName: userName, profilePic: […]

如何将护照与路由控制器结合起来?

我目前正试图执行passport-ldap和passport-jwt到我的rest API。 对于路由,我使用pleerock /路由控制器 ,它有一个授权的方式,但它与布尔和护照工作,我真的不知道。 我甚至不确定是否有可能将两者结合起来。 目前AuthorizationChecker返回false,因为我不知道如何使passport.authenticate成为一个布尔值。 useExpressServer(app, { controllers: [UserController, IssueController, LoginController], authorizationChecker: async (action: Action) => { return false; } @Authorized() @Get("/test") test(@Res() response: Response){ response.send("Test done.") } 如何使用passport.authenticate()与路由控制授权?

尝试在节点中实现JWT身份validation。 在受保护的路线上获得未经授权

我正在尝试实施JWT身份validation。 /login和/注册工作正常,他们返回身份validation令牌,但是当我尝试GET /秘密头'授权'='JWT token_received',它返回一个string'未经授权',我可以看到从JWTStrategy没有日志logging。 请让我知道我要去哪里错了。 var opts = {} opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken(); opts.secretOrKey = "very_secret" passport.use(new JwtStrategy(opts, function(payload, next){ console.log("payload received" + payload); User.findById(payload.id, function(err, user){ console.log("user found:" + user); if(err){ return next(err, false) } else if(user){ return next(null, user) } else{ return next(null, false) } }); } )); app.use(passport.initialize()); app.post("/login", function(req, res){ var email […]

ReferenceError:用户没有定义

这是一个非常具体的问题,但我真的不知道是什么导致了错误。 我有以下代码: router.get('/user/profile', passport.authenticate('jwt', { session: false }), function(req, res, next){ // Something }); 当我访问路由时,它通过我的passport-jwt代码,包括我自定义的getUserById()函数,这是在用户模型中定义的 let opts = {}; opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('jwt'); opts.secretOrKey = config.secret; passport.use(new JwtStrategy(opts, function(jwt_payload, done){ Users.getUserById(jwt_payload._id, function(err, user){ if(err){ return done(err, false); } if(user){ return done(null, user); } else { return done(null, false); } }); })); getUserById() module.exports.getUserById = function(id, callback){ […]

如何在Node.js应用程序中处理客户端网站上的JWT令牌?

我正在实施JWT令牌进行身份validation。 我没有使用像Angular或React这样的客户端站点框架。 这只是EJS。 第1步。我开发了一个API,在成功login时返回令牌,如下图所示(我使用Postman来testingAPI): API响应与JSON 第2步。然后,我访问受限制的路由并传递带有令牌值的授权标头,通过在邮递员中手动input它,它工作得很好。 我的问题是WHERE和如何保存从客户端上的第1步返回的令牌,以便它在第2步中的标头中发送。 我是Web开发的新手,并遵循教程,但是我发现有关实现JWT令牌的所有教程都是针对Angular或React编写的,当涉及到客户端网站时。 任何帮助将不胜感激。 谢谢!

令牌无效:JsonWebTokenError:jwt malformed nodejs

我正在学习如何使用NodeJS,同时遵循一个在线教程,我在标题错误中遇到了问题。 我正在使用最新版本的NodeJS和jsonwebtokenauthentication。 这是我如何生成令牌: router.post('/login', (req, res) => { // Check if username was provided if (!req.body.username) { res.json({ success: false, message: 'No username was provided' }); // Return error } else { // Check if password was provided if (!req.body.password) { res.json({ success: false, message: 'No password was provided.' }); // Return error } else […]

Firebase:如何以编程方式为类似于`firebase.auth()。currentUser.getIdToken(false)`的特定用户生成一个jwt标记?

我有一个http云端函数,希望在授权标头中传递一个jwt令牌(类似于Will在这个问题中的回答: 如何保护firebase云端functionHTTP端点只允许Firebaseauthentication的用户? )。 这个云function通过函数admin.auth().verifyIdToken(<token>)validation令牌。 在我的客户端代码中,我使用代码firebase.auth().currentUser.getIdToken(false)生成一个包含在上述头部的http请求中的令牌。 我想能够以编程方式给用户的uid生成这个令牌,最好是在Node中,这样我就可以为我的函数编写testing,而无需通过我的web应用程序来获取令牌。 我尝试使用admin.auth().createCustomToken(<uid>)但是不创build可以用admin.auth().verifyIdTokenvalidation的标记。 我也尝试按照本指南https://firebase.google.com/docs/database/rest/auth中的步骤操作,但生成的令牌不是verifyIDToken接受的令牌,尽pipe我可以使用REST调用数据库它(如指南中所述)。

为什么我的jwt令牌在背面而不是在前面返回null

我正在尝试向我的mLab数据库发出GET请求。 我传递一个带有请求的JWT令牌,并将其logging在客户端和服务器上。 它在客户端上正确读取,但在服务器上显示为空。 任何帮助将非常感激。 我正在使用Node.js和Angular。 我对此很新,所以如果错误是显而易见的,我就提前道歉。 这里是服务器的GET路由: router.get('/', (req, res, next) => { var decoded = jwt.decode(req.query.token); console.log(decoded); console.log('employees'); if(decoded) { return Company.find({_id: decoded._id}) .populate('user', 'firstName') .exec(function(err, company) { if (err) { return res.status(500).json({ title: 'An error occurred', error: err }); } res.status(200).json({ message: 'Success', obj: company }); }); } else { return res.status(401).json({ title: […]

NodeJS示例 – Firebase云function – 实例化Admin SDK目录服务对象

目标 在Firebase云端函数中使用googleapis获取我的G Suite域中所有用户的列表。 题 如何实例化一个Admin SDK目录服务对象 。 我没有看到一个NodeJS的例子,我不清楚如何设置和使用googleapis的请求。 上下文 此代码从Firebase云端函数运行,似乎可以进行身份​​validation。 现在,我如何在//TODO中的以下代码中设置服务对象: // Firebase Admin SDK const functions = require('firebase-functions') const admin = require('firebase-admin') admin.initializeApp(functions.config().firebase) // Google APIs const googleapis = require('googleapis') const drive = googleapis.drive('v3') const gsuiteAdmin = googleapis.admin('directory_v1') // Service Account Key – JSON let privatekey = require("./privatekey.json") let jwtClient = new googleapis.auth.JWT( privatekey.client_email, […]

使用jsonwebtoken在nodejs和angular cli中获取未经授权的方法

我正在build设一个应用程序使用nodejs和angular-cli我正在使用JsonWebToken来validation用户帐户。 但它总是返回未经授权的401。 在这里我的代码: //validation码 router.post('/authenticate', (req, res, next) => { const username = req.body.username; const password = req.body.password; User.getUserByUsername(username, (err, user) => { if(err) throw err; if(!user){ return res.json({success: false, msg: 'User not found'}); } User.comparePassword(password, user.password, (err, isMatch) => { if(err) throw err; if(isMatch){ const token = jwt.sign(user.toJSON(), config.secret, { expiresIn: 604800 // 1 […]