mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-24 00:55:35 +08:00
1 line
19 KiB
JavaScript
1 line
19 KiB
JavaScript
|
|
(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{738:function(s,t,n){"use strict";n.r(t);var a=n(84),e=Object(a.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"机器人接入鉴权"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#机器人接入鉴权"}},[s._v("#")]),s._v(" 机器人接入鉴权")]),s._v(" "),t("p",[s._v("允许所有客户端接入框架是不安全的,因此框架提供了一个接入鉴权的功能,只有经过鉴权的客户端才能接入框架。")]),s._v(" "),t("p",[s._v("目前框架根据 "),t("a",{attrs:{href:"https://12.onebot.dev/connect/communication/http/#_1",target:"_blank",rel:"noopener noreferrer"}},[s._v("OneBot 12 标准中规定的鉴权方式"),t("OutboundLink")],1),s._v("\n进行鉴权,即通过 "),t("code",[s._v("access_token")]),s._v(" 进行鉴权。")]),s._v(" "),t("h2",{attrs:{id:"鉴权流程"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#鉴权流程"}},[s._v("#")]),s._v(" 鉴权流程")]),s._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[s._v(" 1. 客户端在连接时,通过 OneBot 12 标准中规定的方式传递 `access_token` 参数。\n 2. 框架在接收到客户端的连接请求后,会根据 `access_token` 参数进行鉴权。\n 3. 如果鉴权成功,框架将会接受客户端的连接请求,并开始分发后续事件。\n 4. 如果鉴权失败,框架将会断开客户端的连接。\n")])])]),t("h2",{attrs:{id:"鉴权方式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#鉴权方式"}},[s._v("#")]),s._v(" 鉴权方式")]),s._v(" "),t("p",[s._v("框架提供了两种鉴权方式,分别是静态鉴权和动态鉴权,适应不同的使用场景。")]),s._v(" "),t("h3",{attrs:{id:"静态鉴权"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#静态鉴权"}},[s._v("#")]),s._v(" 静态鉴权")]),s._v(" "),t("p",[s._v("静态鉴权是指在配置文件中指定一个 "),t("code",[s._v("access_token")]),s._v(",并在客户端连接时传递相同的 "),t("code",[s._v("access_token")]),s._v(" 参数。")]),s._v(" "),t("div",{staticClass:"language-php line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-php"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/* 要启动的服务器监听端口及协议 */")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$config")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'servers'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'host'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'0.0.0.0'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'port'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20001")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'type'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'websocket'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[s._v("'access_token'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s.
|