0

如果我执行以下操作:

<cflocation url="https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&client_id=#Application.Google.client_id#&redirect_uri=http%3A%2F%2Fwww.PhillipSenn.com%2FLR%2FGoogle%2FCallback&response_type=code" addtoken="no">

然后我正确地得到“允许访问”和“不,谢谢”屏幕。然后我允许访问,我的回调屏幕被正确调用。

问:我现在该怎么办?我需要确定用户的电子邮件地址。

我唯一看到的是:url.code,它看起来不可用。然后我必须打电话吗

https://www.googleapis.com/oauth2/v1/userinfo

使用一种叫做 access_token 的东西?我不这么认为,因为那是在谈论 JavaScript,而我正在做所有这些服务器端。此外,我不需要用户个人资料信息——我只需要他们的电子邮件地址。

编辑:

这个链接看起来很有希望。

4

3 回答 3

1

该呼叫为您access_token提供了允许您(在有限的时间内)访问用户信息的机会。无论你在哪里使用它,服务器端都可以。

只需确保您的请求https://www.googleapis.com/oauth2/v1/userinfo具有access_token=youraccess_token作为参数

于 2013-01-05T01:26:56.653 回答
0

首次 Google 重定向时,您必须执行以下操作:

<form method="post" action="https://accounts.google.com/o/oauth2/token">
    <input name="code" value="#url.code#">
    <input name="client_id" value="#Google.client_id#">
    <input name="client_secret" value="#Google.client_secret#">
    <input name="redirect_uri" value="#Google.redirect_uri#">
    <input name="grant_type" value="authorization_code">
    <input type="submit" name="getAccessToken" value="Get Access Token">
</form>
于 2013-01-05T02:33:18.050 回答
0

您必须执行以下操作:

<cfhttp method="post" name="qry" url="https://accounts.google.com/o/oauth2/token">
    <cfhttpparam type="formfield" name="code" value="#url.code#">
    <cfhttpparam type="formfield" name="client_id" value="#Google.client_id#">
    <cfhttpparam type="formfield" name="client_secret" value="#Google.client_secret#">
    <cfhttpparam type="formfield" name="redirect_uri" value="#Google.redirect_uri#">
    <cfhttpparam type="formfield" name="grant_type" value="authorization_code">
</cfhttp>
<cfdump var="#qry#">
于 2013-01-05T03:07:24.027 回答