教研室网站建设网站怎么做代码优化
文章目录
- 登录
 - 配置路由
 - 配置消费者
 - 创建后端服务项目
 - 配置上游
 - 再创建一个路由
 - 测试
 
登录
http://192.168.10.101:9000/user/login?redirect=%2Fdashboard
 
 根据docker 容器里的指定端口:
 
配置路由
通过apisix 的API管理接口来创建(此路由,直接通过APISIX Dashboard可视化界面配置,据我所知是不行,包括key什么的都不知道在什么地方配置),所以直接通过API管理接口来创建。
curl -X PUT 'http://127.0.0.1:9180/apisix/admin/routes/r1' \-H 'X-API-KEY: <api-key>' \-H 'Content-Type: application/json' \-d '{"uri": "/apisix/plugin/jwt/sign","plugins": {"public-api": {}}}'
 
其中的<api-key>替换为:
 
 最终为:
curl -X PUT 'http://127.0.0.1:9180/apisix/admin/routes/r1' \-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \-H 'Content-Type: application/json' \-d '{"uri": "/apisix/plugin/jwt/sign","plugins": {"public-api": {}}}'
 
当出现以下红框里的内容时,表明执行成功:
 
 注意以上内容,再往终端控制台粘贴执行时注意一下格式,有时候格式不对,可以使用AI工具给格式化一下,执行会报其他信息。
 
 执行完毕后,通过APISIX Dashboard上的路由界面可以看到多了一条路由信息:
 
 
 
 
配置消费者
{"username": "jack","plugins": {"jwt-auth": {"algorithm": "HS256","base64_secret": false,"exp": 86400,"key": "62ebfa59f112a56b0e691df72fbeeffc","secret": "my-secret-key"}}
}
 

 
 在浏览器中输入:http://192.168.10.101:9080/apisix/plugin/jwt/sign?key=62ebfa59f112a56b0e691df72fbeeffc 如果没有问题的话,回复JWT Token的。请求参数中的key就是配置的消费者里的key。
 
创建后端服务项目
在另一台机器:192.168.10.106上,用JS写一个在Node.js运行,并可访问的后台服务项目。
 Node.js的安装已省略,可参照网上的。
 安装完毕后,看看 node -v 和 npm -v 是否都显示。
 创建项目
cd /opt
mkdir my-node-app
npm init -y   					#会快速生成package.json
npm install express             #web框架  
vim app.js
 
将以下内容写入到app.js文件中
const express = require('express');
const app = express();
const port = 5001;app.get('/protect/tom', (req, res) => {res.send('Hello Tom! ');
});app.listen(port, () => {console.log(`Server is running at http://localhost:${port}/`);
});
 
启动项目:node app.js
 
 通过浏览器测试访问:
 
 后续,我们对以上接口添加JWT验证,通过apisix进行访问。一般情况下后端服务的ip都是内网ip,外网是访问不到的。
关于在空项目目录下:执行 npm init 或npm init -y的区别?
 
 
配置上游
这里的上游,就是我们上面创建的后端服务项目
 
 
再创建一个路由
这个路由和之前创建的那个路由,不一样,这个路由要和我们的上游服务进行绑定,在apisix接收到此路由的url后,会根据此处的路由和上游的绑定关系,将请求转发到指定的上游。在此路由的设置上还可以绑定一些插件,如jwt-auth等,这样当apisix接收到匹配此路由的地址后,会先进行认证校验,校验成功后,才会将请求转发到指定的后端。
 

 
 
 
测试
流程是:客户端(浏览器)——>先请求apisix网关——>再转发给上游服务(后端服务)
 由于在路由层面配置了JWT认证,所以这里会先进行JWT认证,认证成功后,才会转发到上游服务。
 
 先获取JWT Token
 
 为了方便测试:接下来使用APIPOST工具
 
 
 
