通过Discord运行Discord活动时,您可能会遇到内容安全策略(CSP)问题。您可以通过确保网络请求遵循 Discord 代理 规则来修复这些问题。
这可以手动完成...或者你可以让@robojs/patch处理它。
内容安全策略 (CSP) 是一种安全标准,有助于防止 跨站脚本 (XSS) 攻击。它控制页面可以加载哪些资源以及可以向何处发送数据。
当您在 Discord 中运行 Discord 活动 时,您实际上是在使用 Discord 代理 作为中间人,这意味着它设置了自己的 CSP 规则。如果您的网络请求不遵守这些规则,它们将被阻止。
如上所述,您所要做的就是确保您的网络请求遵循 Discord 代理 规则。在某些情况下,这包括将 /.proxy 添加到请求路径的开头。
// Before fetch('/api/token') // After fetch('/.proxy/api/token')
然而,WebSockets 可能有点棘手。特别是当依赖热模块替换(HMR)时,它会在您自己的活动之前加载,如Vite。因此,我们创建了 @robojs/patch 来为您处理一切。
@robojs/patch 是一个轻量级软件包,可以修补您的网络请求以遵循 Discord 代理 规则。它通过更新 fetch 和 WebSocket 全局变量来工作。
npm install @robojs/patch
根据您的项目设置,我们有不同的方法来应用此补丁。
如果您使用Vite,您可以将补丁作为插件应用到您的Vite配置文件中。
import { DiscordProxy } from '@robojs/patch' import { defineConfig } from 'vite' export default defineConfig({ plugins: [DiscordProxy.Vite()] })
我们推荐此方法,因为它允许补丁在Vite的HMR客户端之前运行,确保其正常工作。
如果您没有使用Vite,您可以直接调用函数来应用补丁。
import { DiscordProxy } from '@robojs/patch' DiscordProxy.patch()
请务必在项目开始时、加载其他脚本之前调用此函数。 (例如,index.js 文件的顶部)
➞? 文档: @robojs/patch
这不会影响对外部 URL 发出的请求。如果您遇到CSP问题,您可以通过创建您自己的代理或在Discord开发者门户中映射它们来解决这些问题。
➞? 教程: 使用代理解决 CSP 问题
Robo.js 是一个强大的框架,用于轻松构建 Discord 活动。它提供了广泛的功能和工具来帮助您创建史诗般的 Discord 体验!
加入我们的Discord Server与其他开发人员聊天、提出问题并分享您的项目。我们是一群友好的人,总是很乐意提供帮助!另外,我们自己的人工智能机器人,Sage,可以帮助您解决任何问题。
➞? 社区:加入我们的 Discord 服务器
➞? 教程: 使用 Robo.js 在几秒钟内创建一个 Discord 活动
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3