首页 > 其他分享 >通过NG做用户登录验证接口返回的返回体做登录接口判断

通过NG做用户登录验证接口返回的返回体做登录接口判断

时间:2023-04-27 15:34:26浏览次数:28  
标签:返回 set http 登录 request auth json 接口 proxy

ng获取响应体的json里面的字段需要安装第三方模块 ngx_devel_kit的ngx_http_set_misc_module的set_json_var指令 , form-input-nginx-module

location /api {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
proxy_redirect off;
proxy_pass_request_body off;
proxy_pass_request_headers on;

# 使用ngx_http_set_misc模块获取JSON响应体字段
set $json_field "";
set_json_var $json_field "$upstream_http_content_type" "$upstream_http_json_data.key";

# 将JSON响应体字段传递给后端服务器
proxy_set_header X-My-Json-Field $json_field;
}
在这个配置中,set_json_var指令会从上游服务器的响应头中获取content-type字段,如果它的值为application/json,则会从响应体中获取key字段的值。获取到的key字段的值会被赋值给变量$json_field。

然后,可以使用proxy_set_header指令将$json_field传递给后端服务器。在这个例子中,将$json_field赋值给X-My-Json-Field请求头。

需要注意的是,这个示例假设上游服务器返回的是一个包含JSON数据的响应体,且其中包含一个名为key的字段。如果实际情况不同,需要根据实际情况修改set_json_var指令的参数。

另外,需要注意ngx_http_set_misc模块可能会影响nginx的性能,因此在使用之前需要评估其性能影响。

 

!!!上面是获取 响应体的json中的字段值
下面是ng通过 代理接口 做用户验证登录

location /minio {
# 这是一个需要认证的location
auth_request /auth;
proxy_pass http://localhost:9000;
}

location /auth{
interal;
# 发送认证请求到其他系统
auth_request http://10.20.33.12:31018/videoauth/login;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Original-Method $request_method;

# 如果认证成功,则重定向到需要认证的location
#auth_request_set $auth_cookie $upstream_http_set_cookie;
#add_header Set-Cookie $auth_cookie;
#return 302 /secret;

auth_request_set $auth_response_code $upstream_http_code;
auth_request_set_header X-Auth-Status $auth_response_code;
auth_request_set_header X-Auth-Response $upstream_http_content_type;
auth_request_set $auth_response_body $upstream_http_content_type;

}

location /auth-check {
# 发送认证请求到其他系统,并等待认证响应
internal;
proxy_pass http://其他系统地址/auth-check;
}

标签:返回,set,http,登录,request,auth,json,接口,proxy
From: https://www.cnblogs.com/Luke-wang/p/17359044.html

相关文章

  • API数据接口该怎么对接
    随着互联网和移动互联网的发展,API(ApplicationProgrammingInterface)接口的作用越来越重要。API接口将各种平台相互连接,使得不同系统的信息可以互相获取和使用,大大提高了系统的互操作性和开发效率。本文将介绍如何对接API数据接口,以及注意事项和技巧。获取API接口首先需要找到需要......
  • API淘宝数据接口
    如果你想在自己的应用中使用淘宝的数据,那么对接淘宝数据接口是必不可少的一步。本文将介绍如何对接API淘宝数据接口,以便你能够顺利获取和使用淘宝的数据。步骤一:获取AppKey和AppSecret首先,在淘宝开放平台申请API接口之前,需要先注册为淘宝开发者并创建应用。创建应用后,你将得到一......
  • vue中实际代码模拟JS中promise调接口的运行流程
    假设我们有一个需要调用接口的场景,我们可以使用Vue中的axios库来发送请求。以下是一个简单的例子://引入axios库importaxiosfrom'axios'//定义一个函数,用于发送请求functionfetchData(){//返回一个Promise对象returnnewPromise((resolve,reject)=>{//发......
  • windows忘记登录密码处理方法
    1.重新启动电脑,连续按F8键,选择命令提示的安全模式2.选择Administrator3,打开管理员命令窗口4.输入命令:netuser查找用户帐户:显示结果如下:-------------------------------------------------------------------------------AdministratorDefaultAccount......
  • TypeScript:接口
    介绍TypeScript的核心原则之一是对值所有的结构类型进行类型检查。在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义约束。接口的基本使用interfaceLabelledValue{label:string;}functionprintLabel(labelledObj:LabelledValue){consol......
  • 【Node】coderwhy node 项目视频中 jwt.sign 没有返回值的问题
    在写登录接口时,想生成token用于登录验证,但是在使用jwt生成token(jwt.sign())时却没有返回token,服务端没有报错但是使用postman验证接口时却没有得到正确的请求结果。如果你在使用openssl生成的private.key时是和coerwhy老师一样1024的话就会报错解决方法:最好是生成20......
  • 后端整合 Swagger + Knife4j 接口文档
    接口文档:个人理解的就是后端提供给前端,供前端查看了解数据结构,是前后端联调的基础。Swagger+Knife4j:引入依赖:<!--添加swagger的依赖--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-s......
  • struts2 登录(无验证)
    版本:struts-2.3.16.1开发工具:javaee版本的eclipse服务器:tomcat6新建工程,如图:要加的jar包如图:web.xml:<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/n......
  • struts1 PlugIn接口
    Struts1提供PlugIn接口,可以动态增减ActionServlet的功能。如果需要在应用启动或关闭时完成某些操作,可以创建自己的PlugIn类。Java代码:packagecom.struts1.plugin;importjavax.servlet.ServletException;importorg.apache.struts.action.ActionServlet;importorg.apache.st......
  • 小D-新版接口自动化教程-实操
    setUptearDown TestSuite ......