gpt4 book ai didi

oauth - oauth2 的多个范围值

转载 作者:行者123 更新时间:2023-12-03 05:53:47 25 4
gpt4 key购买 nike

我尝试发布几个范围值以允许我的应用程序使用某些 Google 服务...

我尝试使用两个输入字段

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />  
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />

并且有一个带有 + 分隔符的输入字段

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/userinfo.email" />  

当我发送仅包含一个范围的表单时,它可以工作。否则,使用sereval范围值,谷歌会使用以下错误描述重定向我:

http://localhost:49972/redirect.aspx#error=invalid_request&error_description=OAuth+2+parameters+can+only+have+a+single+value:+scope&error_uri=http://code.google.com/apis/accounts/docs/OAuth2.html 

在谷歌getting started对于 oAuth2,它可以使用两个范围值。

这是我的代码:

  <form id="form1" method="post" action="https://accounts.google.com/o/oauth2/auth?" >
<div>
<input type="hidden" name="response_type" value="code" />
<input type="hidden" name="client_id" value="my client id" />
<input type="hidden" name="redirect_uri" value="http://localhost:49972/redirect.aspx" />
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />

<input type="hidden" name="state" value="/profile" />
<input type="submit" value="go" />
</div>
</form>

最佳答案

当您将它们合并到一个字段时,您的方向是正确的。请求中应该只有一个范围参数,各个值之间用空格分隔。如果您将其放入这样的形式,浏览器将为您负责对空格进行编码。

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email" />

关于oauth - oauth2 的多个范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com