client (axios)
yarn add jsonwebtoken
Sample code
import axios from 'axios';
import jwt from 'jsonwebtoken';
const dataReceiver = axios.create({
baseURL: 'http://localhost:3200/',
timeout: 3 * 1000,
});
const secret = 'your_secret';
// Add a request interceptor
dataReceiver.interceptors.request.use(function (config) {
let payload = { hello: 'world' };
config.headers.Authorization = 'Bearer ' + jwt.sign(payload, secret, { expiresIn: 5 * 60 });
return config;
});
export { dataReceiver };
server (koa)
yarn add koa-jwt
import config from 'config';
import http from 'http';
import Koa from 'koa';
import koaBody from 'koa-body';
import koaLogger from 'koa-logger';
import jwt from 'koa-jwt';
import router from './router';
const app = new Koa()
.use(jwt({ secret: 'your_secret' }))
.use(koaBody())
.use(koaLogger())
.use(router.routes())
.use(router.allowedMethods());
const HTTP_SERVER_PORT = config.get('server.port');
const httpServer = http.createServer(app.callback());
async function start() {
httpServer.listen(HTTP_SERVER_PORT);
}
start();
References
- jwt https://jwt.io/introduction
- npm jsonwebtoken https://www.npmjs.com/package/jsonwebtoken
- koa-jwt https://github.com/koajs/jwt
本文介绍了一个使用JSON Web Tokens (JWT)进行客户端和服务端认证的过程。客户端通过Axios发送带有JWT的请求,而服务端则利用Koa框架及koa-jwt中间件验证这些令牌。此过程涉及JWT的生成、设置请求拦截器以及服务端配置。
627

被折叠的 条评论
为什么被折叠?



