我在做自己的项目。VueJS
上的一个简单游戏。它在JWT
上有定位点。当用户赢/输时,客户端向后端发送相应的请求,以增加数据库中赢/输的数量。
为此制作端点,我意识到我可以使用CORS
BUT限制对其他资源的API访问毕竟,用户可以从localStorage
获取他的jwt access token
,或者在网络选项卡的其他请求中查看它。在同一个选项卡中查看获胜时发送的请求,使用fetch
从浏览器控制台发送相同的请求,并使用他之前收到的令牌。这样他就可以在不玩游戏的情况下增加胜利次数。CORS
将不会以任何方式阻止此请求,因为头Origin
将是相同的。
所以问题是:我的API如何接受我的游戏(axios
)发送的请求
不幸的是,这是不可能的。正如您所注意到的,您可以直接从浏览器控制台发送请求。此外,您可以在运行时更改javascript代码,因此您甚至不能信任自己的代码。因此,唯一的解决方案是改变应用程序的工作方式。唯一的真实来源是你的服务器,从那里你可以决定哪个玩家赢或输。每个回合都应该通过发送请求或WebSocket消息向服务器发送信号。当游戏结束时,服务器应该发送消息给你的客户端报告分数。
在单人游戏的情况下,你应该通过发送所有必需的信息来验证玩家在服务器端的得分。