Просмотр полной версии : Cookie
back.DEV
01.06.2020, 13:53
На сайте сервера arizona-rp.com есть вот такая тема
EOajpJm.pngback.DEV · 1 Июн 2020 в 12:53' data-fancybox="lb-post-505947" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="/proxy.php?image=https%3A%2F%2Fi.imgur.com%2FEOajpJ m.png&hash=370d8f46c1e04c3f4019e45d937e4953" style="cursor: pointer;" title="EOajpJm.png">
https://i.imgur.com/EOajpJm.png
Так вот я делаю запрос к сайту для получения вот этого куки
HTML:
document.cookie="R3ACTLB=eebdbfd51ddb46a72b4326036ed39945 ; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";setTimeout("location.href='https://arizona-rp.com:443/mon/fraction/8/1';",5000);
Получаю я его вот таким образом:
JavaScript:
let
cookie
;
// хранение куки
getOnline
(
)
async
function
getOnline
(
)
{
await
needle
.
get
(
'https://arizona-rp.com'
,
function
(
err, response
)
{
try
{
cookie
=
response
.
body
.
split
(
"R3ACTLB="
)
[
1
]
.
split
(
" ;"
)
[
0
]
;
console
.
log
(
cookie
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
/* потом я делаю запрос опять к этому сайту и уже с использованием этого куки для получения инфы с сайта*/
// Делаю я это таким образом:
await
needle
.
get
(
'https://arizona-rp.com/mon/fraction/8/1'
,
function
(
err, response
)
{
try
{
console
.
log
(
response
.
body
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
}
)
;
Каким образом я во втором запросе могу заюзать этот куки, чтобы мне response.body выводился именно уже с сайта, а не с инфой которая на скрине под спойлером.
Юзаю библиотеку needle.
Azller Lollison
01.06.2020, 14:00
я конечно нихуя не жсер но разве ты не должен в заголовках передать куку а не просто спарсить и засейвить ее в переменную?
back.DEV
01.06.2020, 14:02
я конечно нихуя не жсер но разве ты не должен в заголовках передать куку а не просто спарсить и засейвить ее в переменную?
я в прошлой библиотеке requestify делал именно так как сейчас и передавал как-то через header и всё работало, но она тупит, эта библиотека более стабильно работает, вот и думаю как это реализовать с этой библиотекой
В прошлой библиотеке вот так передавал:
JavaScript:
requestify
.
get
(
'https://arizona-rp.com'
,
{
cookies
:
{
R3ACTLB
:
cookie
}
}
)
.
then
(
function
(
response
)
)
// и т.д и т.п
В этой я так понял по другому все работает.
Azller Lollison
01.06.2020, 14:04
я в прошлой библиотеке requestify делал именно так как сейчас и передавал как-то через header и всё работало, но она тупит, эта библиотека более стабильно работает, вот и думаю как это реализовать с этой библиотекой
передай в массиве вторым аргументом ее
JavaScript:
var
options
=
{
compressed
:
true
,
follow
:
10
,
accept
:
'application/vnd.github.full+json'
}
needle
.
get
(
'api.github.com/users/tomas'
,
options
,
function
(
err, resp, body
)
{
// body will contain a JSON.parse(d) object
// if parsing fails, you'll simply get the original body
}
)
;
пример с гита либы https://github.com/tomas/needle#custom-accept-header-deflate
back.DEV
01.06.2020, 14:19
Если я правильно понял то всеравно возвращает ту же страницу первую.
JavaScript:
getOnline
(
)
async
function
getOnline
(
)
{
await
needle
.
get
(
'https://arizona-rp.com'
,
function
(
err, response
)
{
try
{
cookie
=
response
.
body
.
split
(
"R3ACTLB="
)
[
1
]
.
split
(
" ;"
)
[
0
]
;
console
.
log
(
cookie
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
const
options
=
{
compressed
:
true
,
follow
:
10
,
accept
:
cookie
}
await
needle
.
get
(
'https://arizona-rp.com/mon/fraction/8/1'
,
options
,
function
(
err, response
)
{
try
{
console
.
log
(
response
.
body
)
;
}
catch
(
err
)
{
console
.
log
(
err
)
;
}
}
)
;
}
Вывело мне с первой функции в консольку вот это куки которое оно взяло со страницы и во второй функции вывело уже всю эту страницу которая на скрине выше была.
Azller Lollison
01.06.2020, 14:21
cookie: cookie а не аццепт, ты не шаришь в хттп заголовках?
GitHub - tomas/needle: Nimble, streamable HTTP client for Node.js. With proxy, iconv, cookie, deflate & multipart support. (https://github.com/tomas/needle#http-header-options)
Nimble, streamable HTTP client for Node.js. With proxy, iconv, cookie, deflate & multipart support. - tomas/needle
github.com
вот тут пишется короче
back.DEV
01.06.2020, 14:34
решил проблему, немного посмотрел
Решение:
const options = {
compressed: true,
follow: 10,
cookies: {R3ACTLB: cookie}
}
решил проблему, немного посмотрел
Решение:
const options = {
compressed: true,
follow: 10,
cookies: {R3ACTLB: cookie}
}
GitHub - duy13/vDDoS-Protection: Welcome to vDDoS, a HTTP(S) DDoS Protection Reverse Proxy. Thank you for using! (https://github.com/duy13/vDDoS-Protection)
Welcome to vDDoS, a HTTP(S) DDoS Protection Reverse Proxy. Thank you for using! - duy13/vDDoS-Protection
github.com
вот тебе сурс защиты самого стабильного хостинга
Philipp Zelinski
21.10.2020, 18:58
Предлагаю использовать axios (https://github.com/axios/axios):
Получение необходимого куки:
const
{
get
}
=
require
(
'axios'
)
;
async
function
getCookie
(
url
)
{
// Запрашиваем HTML у сайта
const
res
=
await
get
(
url
)
;
const
isSuccess
=
res
&&
res
.
status
===
200
&&
res
.
data
;
if
(
!
isSuccess
)
throw
new
Error
(
'Неудачный запрос'
)
;
// Проверяем наличие необходимого куки в странице
if
(
!
res
.
data
.
includes
(
'R3ACTLB'
)
)
return
null
;
const
foundCookie
=
res
.
data
.
split
(
'R3ACTLB='
)
[
1
]
.
split
(
' ;'
)
[
0
]
;
if
(
!
foundCookie
)
throw
new
Error
(
'Ошибка при поиске куки на странице'
)
;
return
foundCookie
;
}
Для получения онлайна можно использовать функцию из моей библиотеки (https://github.com/nieopierzony/core#coregetfractionplayersserverid-fractionid-requestconfig):
Получение онлайна:
const
{
getFractionPlayers
}
=
require
(
'@nieopierzony/core'
)
;
// Получение списка игроков во фракции
(
async
(
)
=>
{
const
serverID
=
8
;
const
fractionID
=
1
;
// Использую URL форума, т.к. на основном сайте эту систему отключили
const
players
=
await
getFractionPlayers
(
serverID
,
fractionID
,
{
headers
:
{
Cookie
:
`R3ACTLB=${await getCookie('http://forum.arizona-rp.com')}`
,
}
,
}
)
;
console
.
log
(
players
)
;
// => [
// { id: '1', nickname: 'Skezy_Sparta', rank: 1, online: false },
// { id: '2', nickname: 'Langris_Lout', rank: 3, online: true },
// ... 24 more items
// ];
}
)
(
)
;
На основном сайте аризоны уже убрали ту систему и для входа на сайт, куки не требуется, но все же.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot