3月19日にToken/Refresh Tokenを訪問
既存のコード require('dotenv').config();
const { sign, verify } = require('jsonwebtoken');
module.exports = {
generateAccessToken: (data) => {
return sign(data, process.env.ACCESS_SECRET, { expiresIn: '2d' });
},
sendAccessToken: (res, accessToken) => {
res.json({ data: { accessToken }, message: "ok" });
},
resendAccessToken: (res, accessToken, data) => {
res.json({ data: { accessToken, userInfo: data }, message: "ok" });
},
isAuthorized: (req) => {
const authorization = req.headers["authorization"];
if (!authorization) {
return null;
}
const token = authorization.split(" ")[1];
console.log('token', token)
try {
return verify(token, process.env.ACCESS_SECRET);
} catch (err) {
return null;
}
}
};
クッキーにトークンを付けたコード
require('dotenv').config();
const { sign, verify } = require('jsonwebtoken');
module.exports = {
generateAccessToken: (data) => {
return sign(data, process.env.ACCESS_SECRET, { expiresIn: '2d' });
},
sendAccessToken: (res, accessToken) => {
console.log('accessToken', accessToken)
return res
.status(200)
.cookie('jwt', accessToken)
.json({ data: { accessToken }, message: 'OK' });
},
isAuthorized: (req) => {
const cookie = req.headers.cookie;
console.log('cookie 🚌', cookie)
if (!cookie) {
return null;
} else {
const token = cookie.split(" ")[0]
// console.log('token 🏀', token)
const tokenSlice = token.slice(4, token.length)
// console.log('tokenSlice 🏀', tokenSlice)
const data = verify(tokenSlice, process.env.ACCESS_SECRET);
// console.log('data 🏀', data)
if (!data) {
return null
} else {
return data;
}
}
}
};
トークンをクッキーに入れる過程でjwtには2つのクッキーの現象がある。
postmanに保存されているクッキーも出てきて、
postmanは初期化後に再試行すれば正常に動作します
Reference
この問題について(3月19日にToken/Refresh Tokenを訪問), 我々は、より多くの情報をここで見つけました
https://velog.io/@southbig89/3월-19일-토-Access-Token-Refresh-Token
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
require('dotenv').config();
const { sign, verify } = require('jsonwebtoken');
module.exports = {
generateAccessToken: (data) => {
return sign(data, process.env.ACCESS_SECRET, { expiresIn: '2d' });
},
sendAccessToken: (res, accessToken) => {
res.json({ data: { accessToken }, message: "ok" });
},
resendAccessToken: (res, accessToken, data) => {
res.json({ data: { accessToken, userInfo: data }, message: "ok" });
},
isAuthorized: (req) => {
const authorization = req.headers["authorization"];
if (!authorization) {
return null;
}
const token = authorization.split(" ")[1];
console.log('token', token)
try {
return verify(token, process.env.ACCESS_SECRET);
} catch (err) {
return null;
}
}
};
require('dotenv').config();
const { sign, verify } = require('jsonwebtoken');
module.exports = {
generateAccessToken: (data) => {
return sign(data, process.env.ACCESS_SECRET, { expiresIn: '2d' });
},
sendAccessToken: (res, accessToken) => {
console.log('accessToken', accessToken)
return res
.status(200)
.cookie('jwt', accessToken)
.json({ data: { accessToken }, message: 'OK' });
},
isAuthorized: (req) => {
const cookie = req.headers.cookie;
console.log('cookie 🚌', cookie)
if (!cookie) {
return null;
} else {
const token = cookie.split(" ")[0]
// console.log('token 🏀', token)
const tokenSlice = token.slice(4, token.length)
// console.log('tokenSlice 🏀', tokenSlice)
const data = verify(tokenSlice, process.env.ACCESS_SECRET);
// console.log('data 🏀', data)
if (!data) {
return null
} else {
return data;
}
}
}
};
postmanに保存されているクッキーも出てきて、
postmanは初期化後に再試行すれば正常に動作します
Reference
この問題について(3月19日にToken/Refresh Tokenを訪問), 我々は、より多くの情報をここで見つけました https://velog.io/@southbig89/3월-19일-토-Access-Token-Refresh-Tokenテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol