Я пытаюсь получить доступ к JSON данным (в R ) из REST API.
Для аутентификации мне нужно использовать метод POST в https://dashboard.server.eu/login. Данные, которые необходимо отправить, - это электронная почта и пароль:
library(httr)
login <- list(
email = "my@email.com",
password = "mypass"
)
res <- POST("https://dashboard.server.eu/login", body = login, encode = "form", verbose())
При выполнении вышеизложенного я получаю следующий вывод:
-> POST /login HTTP/1.1
-> Host: dashboard.server.eu
-> User-Agent: libcurl/7.59.0 r-curl/3.3 httr/1.4.1
-> Accept-Encoding: gzip, deflate
-> Cookie: session=10kq9qv1udf0107F4C70RY14fsum41sq50
-> Accept: application/json, text/xml, application/xml, */*
-> Content-Type: application/x-www-form-urlencoded
-> Content-Length: 53
->
>> email=my%40email.com&password=mypass
<- HTTP/1.1 200 OK
<- access-control-allow-headers: Accept, Authorization, Content-Type, If-None-Match
<- access-control-allow-methods: HEAD, GET, POST, PUT, DELETE
<- cache-control: no-cache
<- content-encoding: gzip
<- content-type: application/json; charset=utf-8
<- date: Mon, 09 Mar 2020 14:58:31 GMT
<- set-cookie: session=10kq9qv1udf0107F4C70RY14fsum41sq50; HttpOnly; SameSite=Strict; Path=/
<- vary: origin,accept-encoding
<- x-microserv: NS4yNi4xODQuMjE3
<- x-poweredby: Poetry
<- Content-Length: 2346
<- Connection: keep-alive
В do c сайта сказано, что в случае успеха возвращается JSON res
и содержит строковый токен в res.data._id
.
Я не найти его ... даже просматривая каждый список (и подсписки) res
.
Как мне найти токен?
После do c и например, в AngularJS, я тогда должен сделать:
// Create JSON Object with your token
let authorizeObject = {
'Authorization': 'Session ' + token,
'content-type': 'application/json;charset=UTF-8',
'accept': 'application/json,text/plain',
};
// Create header from the previous JSON Object
let header = {'headers':authorizeObject};
// Use the header in your http request...
$http.get('https://dashboard.server.eu/', header)
Любой намек на то, чтобы этот сон стал реальностью?
ОБНОВЛЕНИЕ - С помощью cURL я могу проверить, есть ли возвращаемая _id
ключ / значение…
С помощью команды:
curl -k -X POST "https://dashboard.server.eu/login" \
-d '{ "email" : "my@email.com", "password" : "mypass" }' \
-H "Content-Type: application/json"
Я получаю вывод:
{
"_id": "697v2on4ll0107F4C70RYhosfgtmhfug",
"isAuthenticated": true,
"user": {
"_id": "5dd57868d83cfc000ebbb273",
"firstName": "me",
"lastName": "Me",
...
Итак, токен сеанса действительно где-то ...
Помогает ли это мне помочь?