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

问题描述 投票:0回答:2

我正在尝试从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。

google-api google-oauth2 google-authentication
2个回答
0
投票

我的应用不涉及任何用户互动

Oauth2确实需要用户交互来对用户帐户进行身份验证,然后您必须从他们请求访问权限。将显示一个同意屏幕,代码将返回到重定向uri


0
投票

回到表单提交的基础知识(没有javascript),表单数据将被发送到您在action中设置的uri,页面将被重定向到服务器设置的内容,或者页面被“重新加载”页面显示服务器的响应。

我从未尝试使用Google OAuth2,但一般情况下,对于这种情况,通常如果您的表单提交成功,它将重定向到您的redirect_uri,并将附加在uri上的标记作为哈希。

刚刚意识到你正在使用代码授权类型。因此流程在此表单提交后,将被重定向到Google IDM以进行身份​​验证并获得同意,然后重定向到redirect_uri并附加auth代码。然后,您可以通过使用您获得的代码从令牌端点请求令牌来获取令牌。

© www.soinside.com 2019 - 2024. All rights reserved.