向Google请求OAuth访问令牌时,为什么需要重定向uri?

时间:2018-09-13 14:54:49

标签: google-api google-oauth2 google-authentication

我正在尝试从Google请求访问令牌,是否可以访问Google云端硬盘帐户来上传文件。

我可以提出一个Auth请求...

<form method="POST" action="https://accounts.google.com/o/oauth2/auth">
    <input type="hidden" name="scope" value="[YOUR SCOPE]"/>
    <input type="hidden" name="client_id" value="[YOUR CLIENT ID]"/>
    <input type="hidden" name="response_type" value="code"/>
    <input type="hidden" name="redirect_uri" value="[YOUR RETURN URL]"/>
    <input type="hidden" name="access_type" value="offline"/>
    <input type="submit"/>
</form>

如果我正在发出HTTP请求以获取访问令牌,为什么我需要redirect_uri。令牌不会在响应正文中返回吗?

我的应用程序不涉及任何用户交互,因此我不确定为什么甚至需要重定向。我不想使用SDK或库,而是想通过Postman使用HTTP。

1 个答案:

答案 0 :(得分:0)

回到表单提交的基础知识(不使用JavaScript),表单数据将发送到您在action中设置的uri,并且页面将重定向到服务器设置的页面或页面“重新加载”页面,其中显示了服务器的响应。

我从没有尝试过Google OAuth2,但通常在这种情况下,通常,如果您的表单提交成功,它将重定向到您的redirect_uri,并将令牌附加在uri上作为哈希值。

刚刚意识到u正在使用代码授予类型。因此,流程是在提交此表单后进行的,它将重定向到Google IDM以进行身份​​验证和同意,然后在添加了验证码的情况下重定向到redirect_uri。那么您可以通过使用您获得的代码从令牌端点请求令牌来获取令牌。