首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用curl或其他unix工具获得授权标记

如何使用curl或其他unix工具获得授权标记
EN

Stack Overflow用户
提问于 2020-02-23 14:16:28
回答 1查看 2.4K关注 0票数 1

我在使用unix工具(如curl )从站点获得授权Bearer令牌值时遇到了问题。问题是我不知道如何只得到这个值7FA733D2E75A962D1FED6D26989550BD.每次发出请求时,值都是不同的(我的意思是它不是常量值)。对于这个请求,我有必要的信息,当我尝试使用带cookie管理器的浏览器并手动放置cookie值时,它就是工作,并获得有效的令牌。Cookie值是:

代码语言:javascript
复制
mac=00%3A1A%3A79%3A40%3A07%3AFF
stb_lang=en
timezone=Europe%2FParis

请求URL是:

代码语言:javascript
复制
http://livegopanel.club:8080/portal.php?type=stb&action=handshake&token=&JsHttpRequest=1-xml

如果我试图从linux控制台自动完成这项工作,我就无法得到这个标记。当我用wireshark捕获tcp流时,从获取有效令牌的过程中获取以下信息。

这是对站点的请求:

代码语言:javascript
复制
GET /portal.php?type=stb&action=handshake&token=&JsHttpRequest=1-xml HTTP/1.1
Accept: */*
User-Agent: Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 4 rev: 2721 Mobile Safari/533.3
Referer: http://livegopanel.club:8080/c/
Accept-Language: en-US,*
Accept-Charset: UTF-8,*;q=0.8
X-User-Agent: Model: MAG254; Link: Ethernet
Host: livegopanel.club:8080
Cookie: mac=00%3A1A%3A79%3A40%3A07%3AFF; stb_lang=en; timezone=Europe%2FParis
Connection: Keep-Alive

以下是网站的回应:

代码语言:javascript
复制
HTTP/1.1 200 OK
Date: Sat, 22 Feb 2020 09:22:53 GMT
Content-Type: text/javascript;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d538fd5b5e457f16e217ec8cf092ea2de1582363373; expires=Mon, 23-Mar-20 09:22:53 GMT; path=/; domain=.livegopanel.club; HttpOnly; SameSite=Lax
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 568fe5eebe337ea4-BUD

{"js":{"token":"7FA733D2E75A962D1FED6D26989550BD"}}

我尝试了许多不同的卷曲,但无法得到的价值。如何构建curl请求或具有其他方式(在bash、perl等上编写的脚本)做这件事?

EN

回答 1

Stack Overflow用户

发布于 2020-02-23 15:52:30

如果安装了jq

代码语言:javascript
复制
curl -s http://livegopanel.club:8080/portal.php\?type\=stb\&action\=handshake\&token\=\&JsHttpRequest\=1-xml | jq -r '.js.token'

jq是用于JSON的瑞士军刀,如果您要在命令行上使用JSON,我建议您熟悉jq。您可以使用https://jqplay.org实时测试jq过滤器。

否则使用sed

代码语言:javascript
复制
curl -s http://livegopanel.club:8080/portal.php\?type\=stb\&action\=handshake\&token\=\&JsHttpRequest\=1-xml | sed 's/.*token":"\(.*\)".*/\1/g'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60363087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档