【发布时间】:2021-07-12 01:04:48
【问题描述】:
我希望 jwt 令牌在 1 分钟后过期。 但是当我运行我的代码时它不起作用。
如何修复我的代码?
有点困惑..我想1分钟后过期.... 我希望 jwt 令牌在 1 分钟后过期。 但是当我运行我的代码时它不起作用。
如何修复我的代码?
有点糊涂..我想1分钟后过期....
(auth.js)
const express = require("express");
const passport = require("passport");
const bcrypt = require("bcrypt");
// const User = require("../models/user");
const jwt = require("jsonwebtoken");
const { User, Post, Comment, Image } = require("../models");
const { isLoggedIn, isNotLoggedIn } = require("./middlewares");
const { Op } = require("sequelize");
const router = express.Router();
router.get("/kakao", passport.authenticate("kakao"));
router.get(
"/kakao/callback",
passport.authenticate("kakao", {
session: false,
}),
(req, res, next) => {
const { snsId, provider } = req.user;
const token = jwt.sign({ id: snsId, provider }, "jwt-secret-key", {
expiresIn: 60 * 60,
});
res.redirect(`demo://app?accessToken=${token}`);
}
);
(护照/index.js)
const passport = require("passport");
const { Strategy: LocalStrategy } = require("passport-local");
const { ExtractJwt, Strategy: JWTStrategy } = require("passport-jwt");
const bcrypt = require("bcrypt");
const User = require("../models/user");
const kakao = require("./kakaoStrategy");
const JWTConfig = {
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
// jwtFromRequest: ExtractJwt.fromHeader("Authorization"),
secretOrKey: "jwt-secret-key",
};
const JWTVerify = async (jwtPayload, done) => {
try {
const user = await User.findOne({ where: { snsId: jwtPayload.id } });
if (user) {
done(null, user);
return;
}
done(null, false, { reason: "올바르지 않은 인증정보 입니다." });
} catch (error) {
console.error(error);
done(error);
}
};
kakao();
module.exports = () => {
passport.use("jwt", new JWTStrategy(JWTConfig, JWTVerify));
};
【问题讨论】:
-
您如何验证令牌?你能在这里添加代码吗?
-
你使用的是哪个库?
标签: javascript node.js reactjs react-native jwt