通过Discord OAuth传递字符串?

6

我想知道是否可以在使用Discord OAuth(身份验证范围)的同时将重要的补充信息传递到重定向URL中。

site with [important variable] > oauth page > site that needs [important variable] and oauth result

我尝试添加类似?variable="myString"的内容,但它会剪切掉除OAuth信息以外的所有不必要的URL参数。Discord OAuth也不太允许在iframe中使用,因此这里不是解决方案。

1
所以基本上你想在授权过程开始时传递一个字符串,并且你希望在返回的URI中接收到相同的字符串,而不做任何更改?我理解得对吗? - Lev Buchel
1个回答

10
我已经就这个问题写了一篇文章,你可以在这里找到:https://levbuchel.com/passing-variables-through-oauth 要通过oAuth过程传递变量,您应该使用“state” oAuth参数。首先创建一个Json字符串来包含您的参数,例如{'first':'111', 'second':'222'}。然后将其编码为base64,以便在传递为URL时不会被修改。将此字符串作为状态(api/oauth2/authorize?response_type=token&state=whatEverYouGotAsState)传递。然后,您将能够在重定向URI上接收并解码它。

2
回来之后,值得注意的是,这适用于各种OAuth服务(不仅仅是Discord),有时出于安全目的也会鼓励这样做。 - Wasabi Thumbs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接