当前位置: 首页 > news >正文

关于新版本 tidb dashboard API 调用说明

作者: WalterWj 原文来源: https://tidb.net/blog/d2d669b2

背景

tidb 新版本增加了对登陆密码进行非对称加密的的步骤。

token 的获取可以参考登录界面的登录流程:

  1. 通过 api 获取 /api/user/login_info 获取公钥等信息
  2. 通过 api /api/user/login 进行登录,payload 为 username 和 password,如果第一步存在公钥,则需要使用公钥对 password 进行加密

参考代码:

https://github.com/pingcap/tidb-dashboard/blob/master/ui/packages/tidb-dashboard-for-op/public/test-portal/index.html

操作

这里启动一个本地的 7.1.5 的 tidb 集群,pd 端口为 2399。数据库登录 账号/密码:root/tidb @123

获取 login info

curl http://127.0.0.1:2399/dashboard/api/user/login_info{"supported_auth_types":[0,1],"sql_auth_public_key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvn9fJETVZeV1oYF5YzAQMNR4x3+8pUMtYmy7DNtSocIPuph76qW+0jaRhrbE7nJi2/51jzkp97cyaZGruPsdQogK5agsRlOirPTUPabJOmaLKW0WtLRzaH/Is1hkAqskdTAUVHK3cO0B7AMLPMjopDHMNSIGFlqtG9u+v2YNyFTRvVH/KqyAHFfwYxNHOeiV0i4rdAMi0hHmt3p7cWeOkQlyJvUATT8zh7fgljTzrMnyd0TLMgpRUFBbwXY4vdcz1YvwwPLAqoEjCzqOYn+xYg5euf84z91N6mCUBkpR0/nUcwLlgRUSnlbhMo+6Agsq9lJ37D0A9Yw5hjoRhetd4wIDAQAB"}

加密 public key

这里输入密码即可。注意结果换行去掉。

echo -n "tidb@123" | openssl rsautl -encrypt -pubin -inkey <(echo -e "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvn9fJETVZeV1oYF5YzAQMNR4x3+8pUMtYmy7DNtSocIPuph76qW+0jaRhrbE7nJi2/51jzkp97cyaZGruPsdQogK5agsRlOirPTUPabJOmaLKW0WtLRzaH/Is1hkAqskdTAUVHK3cO0B7AMLPMjopDHMNSIGFlqtG9u+v2YNyFTRvVH/KqyAHFfwYxNHOeiV0i4rdAMi0hHmt3p7cWeOkQlyJvUATT8zh7fgljTzrMnyd0TLMgpRUFBbwXY4vdcz1YvwwPLAqoEjCzqOYn+xYg5euf84z91N6mCUBkpR0/nUcwLlgRUSnlbhMo+6Agsq9lJ37D0A9Yw5hjoRhetd4wIDAQAB\n-----END PUBLIC KEY-----") -out encrypted_password.binbase64 encrypted_password.bin
ORzuvWIQi4veJkIdMDEC7zehtKQP9pV5cOE8WCpAM6siy+dWkJYVUwIQYythVIHqByZU9X+kS7sx
tBY+HIbiesAhUDB5Nr98fmz7ZiYS2x/pGAqzT0Xvi6UzH89ESxf4fev+Mx0TOu+TE/oqtLNIFXus
CDG1EbPACMke7KgOtsUSZhwbIQrsAdesezSkqec4Uif8FNvtgi7Uv4JU2T56rqF41moTcHZzDuMa
KzD6fqWfJ9YOGFzxr1ZJrPZKu1hyw4SZ1IeI9QGiBwkYEJolhVyFypmbkUtSaHzc4trePQ3TNGT3
v6nKepiZ+xyXYPpK8BKPG6JKcYCR6pR8wrahLg==

获取 token

使用加密后的 password 来登录

curl -X POST "http://127.0.0.1:2399/dashboard/api/user/login" \
>      -H "Content-Type: application/json" \
>      -d '{"username": "root", "password": "ORzuvWIQi4veJkIdMDEC7zehtKQP9pV5cOE8WCpAM6siy+dWkJYVUwIQYythVIHqByZU9X+kS7sxtBY+HIbiesAhUDB5Nr98fmz7ZiYS2x/pGAqzT0Xvi6UzH89ESxf4fev+Mx0TOu+TE/oqtLNIFXusCDG1EbPACMke7KgOtsUSZhwbIQrsAdesezSkqec4Uif8FNvtgi7Uv4JU2T56rqF41moTcHZzDuMaKzD6fqWfJ9YOGFzxr1ZJrPZKu1hyw4SZ1IeI9QGiBwkYEJolhVyFypmbkUtSaHzc4trePQ3TNGT3v6nKepiZ+xyXYPpK8BKPG6JKcYCR6pR8wrahLg=="}'
{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjYxMDc1NzEsIm9yaWdfaWF0IjoxNzI2MDIxMTcxLCJwIjoiaHVpeHFkS3JGbTdFMlQ5NVVidEhsNGgvZkd5cmRGYk9DOWxKbERRRzVEak51V3VaK25XVW1ndlNtMkJvZTN1dFI5UnFXZnl0WEpYSTlRQjBiRGtrNS9DZllsSjlFVCtHK3hTQ2F3SVNaUGs5ZHRnRVpmQW9YTG1UaGFDKzcwNU5KZy9pYmtHTitJL3Z4L3ZpVWlQcmhrSWZvTGppcW9SMFRhZnJTUjRGbTRQWlJRcy9ETzJZaTNSKzhrbDlBaERBSC9EeG42TDZrNDdpRXcrNVRTYk1vZEFTUU5yZTkvaUpPb1ltb3pQemVDWkFzeGhwdGg0RW56WmQ5RjA1d3NaZFlUbURyWEJhbDl6N0duVEp3aFdwWStFQlorRjY3dz09In0.zXTjUJASXpJPR8W1-q6KIvrIVBz3TizCs3xNQhmmO5w","expire":"2024-09-12T10:19:31.604370383+08:00"}

调用 API

这里需要使用获取的 token

curl -X GET "http://127.0.0.1:2399/dashboard/api/slow_query/list" \-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjYxMDcwOTAsIm9yaWdfaWF0IjoxNzI2MDIwNjkwLCJwIjoiMC9ZdTFGSC80aEZkckdxZWFSa0hTTVJQQU5DU2EyNjFCUENsd2ZsVFd4MmViMGlGTHlzZEhOQXNIbEJhMW5oK2VraVBPa2Fld2R5SElZMkZEakxIeGFBSzZuQnQ2dXRJWDA1ZkNncjVjd1hNdXNRL2hmWERSVGNLZXVobDRVMWUrTWxFMjByQmtBTmx3Y0hHZ2lzZmJsVWFNVFo1ZU9ma1RhZ1hQbGd0UEh5MGpiT1MzTWVWZ1VJWjBsdkM1eU0xOHZyTk9mZDBYT2crdTBWYUw4VzVENzNmL2Z0eWJYUnJyN3M2OXkrdU5GcXZJa0RxUDR0UnUwYktWb0VQWmpaTitvTGd6VmE2R3BYc01iS3hYYUdxS1drdFROa0NkZz09In0.eJKmiR04jKRUOIu-rzHsjlIr-yX5VPpmMgAw7LeTr6A"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 推荐这款神器:Perplexity
  • mysql笔记9(子查询)
  • 使用LangChain集成ChatGPT插件:以Klarna购物API为例
  • 数据结构:堆排序
  • Java Jdbc 链接db2数据库示例
  • yolo自动化项目实例解析(二)ui页面整理
  • Vue: watch5种监听情况
  • WPF利用Path自定义画头部导航条(TOP)样式
  • Python基础语法(1)上
  • [数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别
  • 提问即创作:用Prompt提示词引领AI灵感爆发
  • 关于axios同步获取数据的问题
  • Redis embstr 编码
  • MATLAB在嵌入式系统设计中的最佳实践
  • 《Oracle(一)- 基础》
  • canvas 绘制双线技巧
  • create-react-app做的留言板
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6系列(二)变量的解构赋值
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java读取Properties文件的六种方法
  • leetcode46 Permutation 排列组合
  • React中的“虫洞”——Context
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue-cli在webpack的配置文件探究
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 工作中总结前端开发流程--vue项目
  • 关于extract.autodesk.io的一些说明
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 日剧·日综资源集合(建议收藏)
  • 深入浅出webpack学习(1)--核心概念
  • 小程序开发中的那些坑
  • 移动端 h5开发相关内容总结(三)
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • # 数论-逆元
  • #APPINVENTOR学习记录
  • #define,static,const,三种常量的区别
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $$$$GB2312-80区位编码表$$$$
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (windows2012共享文件夹和防火墙设置
  • (ZT)薛涌:谈贫说富
  • (层次遍历)104. 二叉树的最大深度
  • (二)原生js案例之数码时钟计时
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (三)elasticsearch 源码之启动流程分析
  • (算法)Travel Information Center
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)基于IDEA的JAVA基础10
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转载)hibernate缓存