首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Thingsboard - REST上的身份验证错误(来自Curl命令和ASP.NET)

Thingsboard - REST上的身份验证错误(来自Curl命令和ASP.NET)
EN

Stack Overflow用户
提问于 2018-11-22 05:51:10
回答 1查看 1.9K关注 0票数 1

我可以使用我的凭据登录到Thingsboard网站,但是当我试图使用CURL命令连接相同的内容时,我会得到“身份验证失败”错误。

代码语言:javascript
运行
AI代码解释
复制
curl -X POST "https://cloud.thingsboard.io/api/auth/login" -d "{"username":"XYZPQR@ABCDLMN.com", "password":"Q@34&pwn"}" --header "Content-Type: application/json" --header "Accept: application/json"

错误码

代码语言:javascript
运行
AI代码解释
复制
{"status":401,"message":"Authentication failed","errorCode":10,"timestamp":1542893993515}

但是,当我在我的ASP.NET应用程序中使用相同的用户id和密码获取授权令牌时,我确实得到了JWT令牌,但是使用相同的令牌,我无法从Thingsboard进行任何REST调用。

ASP.NET核心代码

代码语言:javascript
运行
AI代码解释
复制
var response = new HttpResponseMessage();
var client = new HttpClient();                
UserModel model = new UserModel { username = "XYZPQR@ABCDLMN.com", password = "Q@34&pwn" };
var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");

response = await client.PostAsync("https://cloud.thingsboard.io/api/auth/login", content);

string data = await response.Content.ReadAsStringAsync();

var userToken = JsonConvert.DeserializeObject<UserToken>(data);

MediaTypeWithQualityHeaderValue contentType = new MediaTypeWithQualityHeaderValue("application/json");

client.DefaultRequestHeaders.Accept.Add(contentType);

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userToken.token);
Uri url = new Uri("https://cloud.thingsboard.io/api/plugins/telemetry/DEVICE/431be6e0-e8ca-11e8-9e5c-3d544ba4fdfc/values/timeseries?keys=Electricity");

response = await client.GetAsync(url);

模型类

代码语言:javascript
运行
AI代码解释
复制
 public class UserModel {
        public string username { get; set; }
        public string password { get; set; }
    }

    public class UserToken
    {
        public string token { get; set; }
        public string refreshToken { get; set; }
    }

请建议,如何从Thingsboard REST中获取遥测值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-22 23:22:09

这是我正在做的一个小错误;我将旧代码更改为新代码(如下面所示),一切都按预期开始工作。

旧码

代码语言:javascript
运行
AI代码解释
复制
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userToken.token);

新代码

代码语言:javascript
运行
AI代码解释
复制
client.DefaultRequestHeaders.Add("X-Authorization", "Bearer " + userToken.token);

谢谢你的支持。

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

https://stackoverflow.com/questions/53432471

复制
相关文章
wget 和 cURL命令
wget 简单直接。这意味着你能享受它超凡的下载速度。wget 是一个独立的程序,无需额外的资源库,更不会做其范畴之外的事情。
acc8226
2022/05/17
2.3K0
REST介绍与CURL应用
REST内容转载两篇文章 http://www.ruanyifeng.com/blog/2011/09/restful http://www.ruanyifeng.com/blog/2014/05/restful_api.html
程裕强
2022/05/06
7300
使用ThingsBoard查看物联网数据
ThingsBoard是一个开源平台,用于收集和可视化物联网设备的数据。可以将来自任意数量设备的数据发送到云服务器,在云服务器中可以通过可自定义的仪表板查看或共享。
Techeek
2018/09/19
13.7K1
使用ThingsBoard查看物联网数据
curl命令
curl是一个命令行工具,用于使用任何受支持的协议HTTP、FTP、IMAP、POP3、SCP、SFTP、SMTP、TFTP、TELNET、LDAP或FILE向网络服务器传输数据或从网络服务器传输数据,其被设计成无需用户交互即可工作,因此非常适合在shell脚本中使用,该软件提供代理支持、用户身份验证、FTP上传、HTTP posting、SSL连接、cookie、文件断点传输、metalink等功能。
WindRunnerMax
2022/05/06
9.3K0
curl 命令
1、开放gzip求 curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte
全栈程序员站长
2022/07/06
7.1K0
Linux的curl命令
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
10.8K0
curl命令
curl是一种命令行工具,支持多种协议,作用是发出网络请求,然后得到和提取数据,显示在stdout上面。 在服务器端,使用curl查看请求地址是否返回数据来判断是nginx配置问题还是程序服务配置问题不失为一种好方式(curl -i "...")!
奋飛
2019/08/15
2.2K0
windows下使用curl命令 && 常用curl命令
什么是curl命令? curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 如何在win
Java学习123
2018/05/16
5K0
linux curl命令详解_curl详解
curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。
全栈程序员站长
2022/11/01
16.6K0
ASP.NET Core 和 ASP.NET Framework 共享 Identity 身份验证
  .NET Core 已经热了好一阵子,1.1版本发布后其可用性也越来越高,开源、组件化、跨平台、性能优秀、社区活跃等等标签再加上“微软爸爸”主推和大力支持,尽管现阶段对比.net framework还是比较“稚嫩”,但可以想象到它光明的前景。作为 .net 开发者你是否已经开始尝试将项目迁移到 .net core 上?这其中要解决的一个较大的问题就是如何让你的 .net core 和老 .net framework 站点实现身份验证兼容! 1、第一篇章 我们先来看看 .net core 中对 id
捷义
2018/05/14
2.1K0
ThingsBoard 物联网平台-代码结构分析
ThingsBoard 是一个备受瞩目的开源物联网平台,其优秀的性能和高效的性能得到了广大开发者的认可。ThingsBoard 是用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准的物联网协议 - MQTT、CoAP 和 HTTP 实现设备连接,并支持云和本地部署。Thingsboard 具有可伸缩性、容错性和性能优越的特点。
acc8226
2022/05/25
4.1K0
Linux - curl 命令
后面的栗子,基本都会加 -v,是为了看请求的详细过程,更容易看到对应的参数已生效,实际使用不需要每次都 -v
小菠萝测试笔记
2021/06/17
8.5K0
Linux - curl 命令
Django REST Framework-基于Basic的身份验证
在Django REST Framework中,BasicAuthentication是最简单的身份验证之一,它基于HTTP基本身份验证标准。
玖叁叁
2023/04/25
6890
CURL 命令简介
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 curl 就是使用命令的方式来执行http协议的请求的工具。可以通过curl操作HTTP的GET/POST/PUT/DELETE方法。
全栈程序员站长
2022/09/13
6150
Django REST Framework-基于Session的身份验证
Django REST Framework支持多种身份验证方法,其中一种是基于Session的身份验证。使用基于Session的身份验证,您需要使用Web浏览器发送请求。在每个请求中,浏览器将自动在Cookie中发送Session ID,从而实现身份验证。
玖叁叁
2023/04/25
6380
curl命令使用
一、curl常用命令 这个命令我在linux下用的多一些,windows也可以,可以说是一款很强大的http命令行工具,支持上传、下载等操作,非常莱斯的工具。 1、get请求:并返回resp curl https://www.gaojs.com.cn # 测试请求是否可达:显示一次http通信的整个过程,包括端口连接和http request头信息 curl -v https://www.gaojs.com.cn 2、post请求 # post请求 curl -X -POST https://w
懿曲折扇情
2022/08/24
4.7K0
curl命令使用
curl 命令妙用
curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。本文主要分享一些常用的场景:
Wu_Candy
2022/07/04
1.4K0
Linux 命令(136)—— curl 命令
curl 命令是一个利用 URL 规则在 Shell 终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。
恋喵大鲤鱼
2020/03/09
3.7K0
说说 Linux 的 curl 命令
比如上面的 imlht.com.test,一般情况下你是没有这个证书的,但是你又想测试 10.43.1.101 的 /user 接口,此时可以直接跳过测接口的内容。
仁扬
2023/07/11
2390
Elasticsearch CURL命令
提示:绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用
用户7657330
2021/12/07
1.5K0

相似问题

JIRA: CURL命令的Rest API身份验证

10

WordPress rest curl命令

11

THINGSBOARD REST API调用节点

144

REST和CURL

15

来自Rest服务和Cordova的身份验证

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档