向JSON REST API进行身份验证时如何获取会话令牌(在R中)

用户名

我正在尝试从REST API访问JSON数据(在R中)。

要验证自己的身份,我需要在https://dashboard.server.eu/login中使用POST方法需要发送的数据是电子邮件和密码:

library(httr)

login <- list(
  email = "[email protected]",
  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

该网站的文档说,如果成功,将res返回JSON并在中包含一个字符串令牌res.data._id

在此处输入图片说明

我找不到它,即使查看的每个列表(和子列表)res

我应该如何找到令牌?

遵循该文档以及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" : "[email protected]", "password" : "mypass" }' \
             -H "Content-Type: application/json"

我得到的输出:

{
  "_id": "697v2on4ll0107F4C70RYhosfgtmhfug",
  "isAuthenticated": true,
  "user": {
    "_id": "5dd57868d83cfc000ebbb273",
    "firstName": "me",
    "lastName": "Me",
...

因此,会话令牌确实在某处...

这对我有帮助吗?

艾伦·卡梅伦

查看问题中的图像res,该消息在下面content-仅是将内容存储为原始字节的向量,这就是为什么您不将其识别为json的原因。

由于http可以发送任何文件类型,因此httr出于各种原因响应对象中的内容以原始格式而不是字符串存储-也许最重要的是,因为许多二进制文件将包含一个0x00字节,而这是字符所不允许的R中的字符串。

在你的情况,我们不仅可以告诉大家,res$content 文字,但它是你的“失踪” JSON。的前六个字节res$content显示在图像中,分别为7b, 22, 5f, 69, 64, 22我们可以通过以下操作将它们转换为R中的字符串:

rawToChar(as.raw(c(0x7b, 0x22, 0x5f, 0x69, 0x64, 0x22)))
[1] "{\"_id\""

这与预期的json字符串的前六个字符匹配。

因此,如果您这样做:

httr::content(res, "text")

要么

rawToChar(res$content)

您将以字符串形式获取json。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用令牌对REST服务进行身份验证

来自分类Dev

使用Node JS中的Keycloak访问令牌对Rest API进行身份验证

来自分类Dev

基于令牌的REST API身份验证

来自分类Dev

向Spring Data Neo4j Rest添加身份验证令牌

来自分类Dev

PayPal-在Java中获取身份验证令牌生存期/过期时间(Rest API)

来自分类Dev

使用令牌进行身份验证时,Spring REST API控制器将重定向到主目录

来自分类Dev

如何对REST中的每个请求强制进行身份验证?

来自分类Dev

在Django Rest Framework中使用令牌身份验证进行身份验证时,不会更新last_login字段

来自分类Dev

如何为Rails设置远程JSON API以进行身份验证和会话

来自分类Dev

如何为Rails设置远程JSON API进行身份验证和会话

来自分类Dev

SPA使用的经过身份验证的Rest API:如何获取用于登录和注册表单的CSRF令牌?

来自分类Dev

如何-AWS Rest API身份验证

来自分类Dev

如何使用HTTPS(基本身份验证)向Woocommerce API进行身份验证

来自分类Dev

获取令牌身份验证视图时的Django REST HTTP 400错误

来自分类Dev

如何在JSON API的RSpec测试中通过身份验证令牌?

来自分类Dev

如何在JSON API的RSpec测试中通过身份验证令牌?

来自分类Dev

从Django Rest Framework中的令牌获取经过身份验证的用户

来自分类Dev

在Django Rest Framework中向JSON响应添加多个模型和自定义字段

来自分类常见问题

使用令牌向GitHub进行身份验证

来自分类Dev

如何测试使用django-rest-auth令牌身份验证的API?

来自分类Dev

带有身份验证的REST API中的CSRF令牌

来自分类Dev

如何使用ADAL / OAuth向CRM Online进行身份验证并通过令牌请求数据?

来自分类Dev

如何使用Qt和访问令牌向GitHub进行身份验证

来自分类Dev

WordPress REST API-浏览器无需身份验证即可提供JSON响应

来自分类Dev

Office 365 REST日历API,用于使用OAuth承载令牌进行身份验证时创建失败的HTTP-403事件

来自分类Dev

使用AngularJS进行身份验证,使用REST Api WS进行会话管理和安全性问题

来自分类Dev

通过REST API身份验证进行TeamCity备份失败

来自分类Dev

使用Sails JS对Jira REST API进行身份验证

来自分类Dev

通过Wordpress REST API进行身份验证

Related 相关文章

  1. 1

    如何使用令牌对REST服务进行身份验证

  2. 2

    使用Node JS中的Keycloak访问令牌对Rest API进行身份验证

  3. 3

    基于令牌的REST API身份验证

  4. 4

    向Spring Data Neo4j Rest添加身份验证令牌

  5. 5

    PayPal-在Java中获取身份验证令牌生存期/过期时间(Rest API)

  6. 6

    使用令牌进行身份验证时,Spring REST API控制器将重定向到主目录

  7. 7

    如何对REST中的每个请求强制进行身份验证?

  8. 8

    在Django Rest Framework中使用令牌身份验证进行身份验证时,不会更新last_login字段

  9. 9

    如何为Rails设置远程JSON API以进行身份验证和会话

  10. 10

    如何为Rails设置远程JSON API进行身份验证和会话

  11. 11

    SPA使用的经过身份验证的Rest API:如何获取用于登录和注册表单的CSRF令牌?

  12. 12

    如何-AWS Rest API身份验证

  13. 13

    如何使用HTTPS(基本身份验证)向Woocommerce API进行身份验证

  14. 14

    获取令牌身份验证视图时的Django REST HTTP 400错误

  15. 15

    如何在JSON API的RSpec测试中通过身份验证令牌?

  16. 16

    如何在JSON API的RSpec测试中通过身份验证令牌?

  17. 17

    从Django Rest Framework中的令牌获取经过身份验证的用户

  18. 18

    在Django Rest Framework中向JSON响应添加多个模型和自定义字段

  19. 19

    使用令牌向GitHub进行身份验证

  20. 20

    如何测试使用django-rest-auth令牌身份验证的API?

  21. 21

    带有身份验证的REST API中的CSRF令牌

  22. 22

    如何使用ADAL / OAuth向CRM Online进行身份验证并通过令牌请求数据?

  23. 23

    如何使用Qt和访问令牌向GitHub进行身份验证

  24. 24

    WordPress REST API-浏览器无需身份验证即可提供JSON响应

  25. 25

    Office 365 REST日历API,用于使用OAuth承载令牌进行身份验证时创建失败的HTTP-403事件

  26. 26

    使用AngularJS进行身份验证,使用REST Api WS进行会话管理和安全性问题

  27. 27

    通过REST API身份验证进行TeamCity备份失败

  28. 28

    使用Sails JS对Jira REST API进行身份验证

  29. 29

    通过Wordpress REST API进行身份验证

热门标签

归档