Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用cookie调用wordpress注销接口,但前端不注销

使用cookie调用wordpress注销接口,但前端不注销
EN

Stack Overflow用户
提问于 2022-10-24 01:52:22
回答 1查看 27关注 0票数 0

我试图使用RestTemplate来携带cookie并请求一个自定义Wordpress注销接口,但是前端没有注销。当我直接访问浏览器中的注销url时,我能够成功地注销。以下是我的RestTemplate代码:

代码语言:javascript
运行
AI代码解释
复制
public void logoutOfWordpress(HttpServletRequest request, HttpServletResponse response) {
        Cookie[] cookies = request.getCookies();
        String url = wordpressProper.getRestUrl() + "/community-rest/logout";
        HttpHeaders httpHeaders = buildHeaderByCookies(cookies);
        ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(httpHeaders), String.class);
        Object body = exchange.getBody();
    }

这是WordPress注销接口:

代码语言:javascript
运行
AI代码解释
复制
add_action( 'rest_api_init', 'community_rest_logout');

function community_rest_logout() {
    register_rest_route(
        'community-rest',
        '/logout/', 
        array(
            'methods'  => 'GET',
            'callback' => 'logout'
        )
    );
}

function logout() {
    wp_logout();
    wp_redirect('http://192.168.100.5:8888/sign_in');
    exit;
}

我尝试使用Postman调用这个注销接口,发现响应头中有Set-Cookie。这似乎是登出所必需的。看来,我可以直接将cookie的Max-Age设置为0,以实现注销的目的,而不必调用注销接口。

EN

回答 1

Stack Overflow用户

发布于 2022-10-24 09:18:03

您使用什么作为用户登录?在wordpress rest中,会话不会在内部启动。如果用户登录到您的注销端点,您应该能够获得user_id。你能接这个吗?

通常,nonce用于未注册用户的rest。您需要在标头或参数中发送当前值。对于注册用户,您需要对cookie进行身份验证,或者可以使用一些rest身份验证插件。

对于一个简单的黑客,您可以在端点的顶部使用它:

代码语言:javascript
运行
AI代码解释
复制
    public function init_cookie() {

        $userID = wp_validate_logged_in_cookie(false);

        if($userID) {
            wp_set_current_user($userID);
        }

    }

我还建议在类中定义代码或以函数的名称作为前缀。注销函数是一个非常通用的名称。如果这只是一个例子,忽略我所说的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74179367

复制
相关文章
CORS跨域
当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。
张炳
2019/08/02
2.1K0
CORS跨域
跨域 cors
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!
收心
2022/01/19
6040
ajax cors跨域_jquery跨域
Jsonp 的实现原理就是:创建一个回调函数,然后在远程服务上调用这个函数并且将 JSON 数据形式作为参数传递,完成回调。
全栈程序员站长
2022/09/23
2.7K0
跨域,不止CORS
我们通常提到跨域问题的时候,相信大家首先会想到的是 CORS(跨源资源共享),其实 CORS 只是众多跨域访问场景中安全策略的一种,类似的策略还有:
ConardLi
2020/11/26
1.6K0
跨域和CORS
  同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。    
changxin7
2019/12/19
1.1K0
cors跨域探讨
前端跨域方案很多,jsonp、iframe等等,但是个人觉得,最正宗,最无损的跨域方式还是CORS。 CORS(Cross-origin resource sharing)是一个W3C标准,翻译过来是跨域资源共享。 它允许浏览器向跨域(协议、域名、端口任一不相同)服务器发送XMLHttpRequest请求。 目前支持所有现代浏览器(>IE10) 借阅了阮一峰大神的《跨域资源共享 CORS 详解》,结合自己的理解,说一说自己的CORS的领会。
用户1394570
2018/08/08
6430
CORS跨域漏洞的学习
最近斗哥在学习CORS的漏洞和相关的一些知识梳理,网站如果存在这个漏洞就会有用户敏感数据被窃取的风险。
漏斗社区
2018/12/29
4K0
Spring的跨域CORS实现
JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。
十毛
2019/10/25
5220
跨域资源CORS简介
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。
javascript.shop
2019/09/04
5030
Nginx 设置cors跨域
提示:有时候我们的后端是PHP文件,则需要把跨域的代码加 location ~ \.php(.*)$ 中。
ITer.996
2019/08/28
2.4K0
java配置跨域springboot配置Cors跨域
springboot配置Cors跨域、java最简单配置跨域解决方案 现在前后分离已经是很常见的一种开发方式了,所以难免会遇到跨域问题,之前用的比较多的是jsonp(本人表示没用过),之前我遇到这种问题一般都是用nginx做反向代理实现跨域请求。 不过springmvc4.2版本增加了对cors的支持,所以解决办法就更简单了,后端一个全局配置轻松解决跨域问题,比之前的都简单轻松。 cors协议不懂的可以百度哦,这里就不废话了。 由于现在大部分项目都是基于springboot做的,目前微服务的开发模式也很火,
码农笔录
2018/06/29
1.3K0
CORS 跨域与“钓鱼”
http://mpvideo.qpic.cn/0bf26qaaaaaareakmko7dnpfb5gdad2aaaaa.f10002.mp4?dis_k=b6c7c6e349458670c5b8e8f
老张的哲学
2022/04/11
2640
CORS解决跨域问题
浏览器中,网站A的网络请求访问网站A的资源(图片,HTTP请求)是很顺畅的,而想访问网站B的资源,就要面对跨域资源访问的问题了。面对跨域问题,有很多的解决方案,本文讨论使用 CORS 来解决的方案。
张云飞Vir
2020/03/27
2K0
(CORS) Nginx配置跨域
网站配置文件server 添加以下即可location / { add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache
用户9966982
2022/11/05
1.5K0
Flask配置Cors跨域
跨域是指:浏览器A从服务器B获取的静态资源,包括Html、Css、Js,然后在Js中通过Ajax访问C服务器的静态资源或请求。即:浏览器A从B服务器拿的资源,资源中想访问服务器C的资源。
用户1558882
2019/03/04
3.8K0
Flask配置Cors跨域
跨域问题及CORS解决跨域问题方法
跨域不一定会有跨域问题。因为跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。
Java架构师必看
2021/03/22
12.9K0
跨域共享CORS详解及Gin配置跨域
跨域简介 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host,那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。 跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的(例如一般情况跨域的JavaScript无法交互,当然有很多解决跨域的方案) 解决跨域几种方案 /* CORS 普通跨域请求:只服务端设置Access-Control-Allow-Origin即可, 前端无须设置,若要带cookie请求:前后端都需要设置。
iginkgo18
2020/12/01
1.8K0
nginx跨域访问配置_cors跨域访问不了
跨域概念 简单来说:两个url只要协议、域名、端口有任何一个不同,都被当作是不同的域,相互访问就会有跨域问题。
全栈程序员站长
2022/11/15
4.6K0
nginx跨域访问配置_cors跨域访问不了
跨域资源共享(CORS)
简单先了解一下CORS,方便我们后续去挖一些CORS的漏洞,最近CORS也是比较火的!
黑伞安全
2019/10/16
3.6K0
AJAX 原理与 CORS 跨域
https://segmentfault.com/a/1190000011549088
Bug开发工程师
2018/09/21
1.4K0
AJAX 原理与 CORS 跨域

相似问题

闪亮,无法选择所选数据集的变量

119

跨数据集使用变量

11

声明变量集=选择

11

使用typedcolumn选择Spark数据集

23

基于变量的数据集的选择与聚焦

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文