设置访问授权码后如何通过 API 访问?

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    20153 引用 • 77708 回帖 • 2 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7015 引用 • 31702 回帖 • 220 关注

相关帖子

优质回帖
  • soltus 1

    issue 模板太麻烦了。思源 windows 和安卓都很好复现的,清空页签后快速点击【帮助】重复读写笔记本就会出现

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    不会失效的,优先 API token 校验,校验失败的话才会使用登录会话中的授权码校验。

    1 回复
  • ethanyang 1 评论

    说以下我的最终目的吧,我想把本地的 API 接口变成公网服务,然后尝试和大模型配合做一些操作。

    然后,就需要把本地的 API 接口变成公网服务,鉴权就碰到的问题。

    @88250

    我也尝试直接转发 6806 端口,不开本地服务。。好像也不行
    ethanyang
  • ethanyang 1 评论

    但确实会返回鉴权失败

    1 回复
    我使用的是:zrok.io,把本地的端口转发到公网
    ethanyang
  • 88250

    可以试着 debug 看看,代码在 model/session.go 中的 CheckAuth 函数。

    1 回复
  • ethanyang

    image.png

    说明中转的服务收到请求

    然后不设置鉴权密码,会反馈说为了安全要开启。

    开启后说鉴权失败

    image.png

  • ethanyang

    臣妾做不到。。。😄

    1 回复
  • 你是不是漏了前面的 TOKEN 字符?

    image.png

    1 回复
  • 88250 2 评论

    下个版本会在响应中加入一些额外信息以便定位问题。

    1 回复
    不会,我同一个请求包,只是把 127。0。0。1 换成公网的。 而且,同一个公网的地址: 第一次未开启鉴权密码。提交后,提示因为公网访问说要配置鉴权密码 第二次开启鉴权密码后,反馈鉴权失败。 大概率是鉴权的 bug
    ethanyang
    加入额外信息也没用吧
    ethanyang
  • ethanyang 2 评论

    不会,我同一个请求包,只是把 127。0。0。1 换成公网的。

    而且,同一个公网的地址:

    第一次未开启鉴权密码。提交后,提示因为公网访问说要配置鉴权密码

    第二次开启鉴权密码后,反馈鉴权失败。

    大概率是鉴权的 bug

    部署在 docker 吗
    soltus
    本地
    ethanyang
  • ethanyang 1 评论

    @88250 呼唤关注 😄

    1 回复
    今天早上,发现不一样了。。。。
    ethanyang
  • ethanyang

    03-29 日

    第一次 未开启鉴权密码。在 127.0.0.1 提交后,正常执行

    第二次 开启鉴权密码后,在 127.0.0.1 提交后,反馈鉴权失败。

    现在又变成,只要访问授权码,配置鉴权,就不行了。。

  • 88250

    下载最新的 dev 版测试看看,里面加了一些日志来定位这个问题。

    2 回复
  • ethanyang

    弱弱的问句,哪里下载啊。。

    站点上的下载,和 github 上的下载都没找到

    1 回复
  • ethanyang 2 评论

    报错发生了变化:

    {
    	"code": -1,
    	"msg": "Auth failed [session]"
    }
    
    步骤一样:
    ethanyang
    第一次 未开启鉴权密码。在 127.0.0.1 提交后,正常执行 第二次 开启鉴权密码后,在 127.0.0.1 提交后,反馈鉴权失败。
    ethanyang
  • ethanyang

    我强制在构造的 api 请求中加入 cookie,把本地的 cookie 都带上,然后就可以正常使用了。

    这说明,确实触发 cookie 中的 session 认证了。

    1 回复
  • 88250

    说明你之前没有正确传入请求标头 Authorization,所以最后才会使用 Cookie 校验的。

    1 回复
  • ethanyang 1 评论

    但我第一次。。。调用 api 是正常执行的啊?

    难道思源 api 不经过鉴权就能访问?

    你看下我反馈的 api 请求的对比啊

    1 回复
    第一次都是可以成功的啊,不通过 API token 的认证,我是如何执行成功的。。。。。。。。。。。。。。。。。。。
    ethanyang
  • 88250

    127 访问不需要鉴权

  • ethanyang

    呃。。。。用户如何知道 127 不需要鉴权

    然后我软件直接配置的鉴权

    image.png

    1 回复
  • ethanyang

    image.png

    image.png

  • ethanyang 1 评论

    @88250 究竟要如何配置才可以啊。。。。

    不使用软件的,这几种方式我都尝试了。都不行。

    吐血啊

    浪费好几天时间了
    ethanyang
  • 88250

    127 访问时配置了 token 鉴权也没有关系,服务端不会校验的。

    你仔细看下 API 文档吧,是你的 Authorization 标头配置有问题。

    1 回复
  • ethanyang

    @88250 你看我的截图啊。。。。

    我能想到的可能性都配置。

    1 回复
  • ethanyang

    image.png

    API 文档中的这种,我早就尝试了啊。不行啊,你看我的截图

  • 88250

    我就是看了你截图才叫你核对一下的,Token 大小写不对。

    1 回复
  • ethanyang

    @88250 而且你说 127.0.0.1,不需要鉴权就可以访问,根本就不是!

    image.png

    1 回复
  • ethanyang

    啊。。。。

    为啥不按标准协议来,太痛苦了

    1 回复
  • 88250

    不设置访问鉴权码的话 127 访问 API 不需要鉴权,具体你看下前面我提到的 seesion.go 中的相关实现代码吧,你认为有 bug 的话请指出。

  • 88250

    是标准 HTTP 协议啊,有什么问题? 你要是觉得有问题就直接描述问题,说个“太痛苦了”过于抽象。

    1 回复
  • 88250 1 评论

    我在和你探讨技术问题,你却在给我描述情感体验 🤣

    我只能猜着改进一下了 Issue #10792 · siyuan-note/siyuan

    可以的
    ethanyang
  • 前几天我调试 GO 的时候加了一堆日志哈哈,最后也没能解决 crash,只好在点击获取帮助文档的时候前端用遮罩屏蔽了

    1 回复
  • 88250

    欢迎提个 issue 记录一下重现步骤。

    1 回复
  • soltus 1

    issue 模板太麻烦了。思源 windows 和安卓都很好复现的,清空页签后快速点击【帮助】重复读写笔记本就会出现

  • ethanyang

    我不了解啊

    但我看哪些构造 http 接口包的软件把这种认证方式叫:bearer auth 认证,一般都是以 Bearer 开头。我截图中有这个截图。

    比如 chatgpt 的 token 就是以 Bearer 开头的。

    1 回复
  • 88250

    Token 开头的也有,下个版本我们两种都兼容。

请输入回帖内容 ...

推荐标签 标签

  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 613 关注
  • 反馈

    Communication channel for makers and users.

    124 引用 • 907 回帖 • 223 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 283 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 520 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 130 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 7 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 580 关注
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 20 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 2 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    536 引用 • 672 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖 • 124 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 606 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 322 关注
  • CodeMirror
    1 引用 • 2 回帖 • 125 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1458 回帖 • 109 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 146 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 705 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 275 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 615 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 20 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7015 引用 • 31702 回帖 • 220 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 40 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    76 引用 • 429 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 94 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 430 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖