Google 与 ColdFusion 的登录集成
Google Login Integration with ColdFusion
我正在尝试将 ColdFusion 与 Google+ 集成。 grantType
有问题。首先,我使用 Google 对用户进行了身份验证。然后,当我尝试获取令牌时,它会抛出错误。下面是我的代码:
<cfset code = URLEncodedFormat('#code#')>
<cfset appId = URLEncodedFormat('#this.appId#')>
<cfset key = URLEncodedFormat('#this.key#')>
<cfset uri = URLEncodedFormat('#this.redirectURI#')>
<cfset grant = 'authorization_code'>
<cfset postBody = "code=#code#"
& "&client_id=#appId#"
& "&client_secret=#key#"
& "&redirect_uri=#uri#"
& "&grant_type=#grant#">
<cfhttp url = "https://accounts.google.com/o/oauth2/token" method="POST">
<cfhttpparam type="body" value="#postBody#">
<cfhttpparam type="header" name="Conternt-Type" value="application/x-www-form-urlencoded">
</cfhttp>
这是错误:
{ "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" }
我在这里做错了什么?我没有看到问题。请帮忙。
我已经关注了这个https://developers.google.com/identity/protocols/OAuth2WebServer
POST有什么具体的原因要自己拼装吗?为了安全起见,试试这个(替换代码片段的所有行):
<cfhttp method="POST" url="https://accounts.google.com/o/oauth2/token">
<cfhttpparam type="formfield" name="grant_type" value="authorization_code">
<cfhttpparam type="formfield" name="redirect_uri" value="#this.redirectURI#">
<cfhttpparam type="formfield" name="client_id" value="#this.appId#">
<cfhttpparam type="formfield" name="client_secret" value="#this.key#">
<cfhttpparam type="formfield" name="code" value="#code#">
</cfhttp>
我正在尝试将 ColdFusion 与 Google+ 集成。 grantType
有问题。首先,我使用 Google 对用户进行了身份验证。然后,当我尝试获取令牌时,它会抛出错误。下面是我的代码:
<cfset code = URLEncodedFormat('#code#')>
<cfset appId = URLEncodedFormat('#this.appId#')>
<cfset key = URLEncodedFormat('#this.key#')>
<cfset uri = URLEncodedFormat('#this.redirectURI#')>
<cfset grant = 'authorization_code'>
<cfset postBody = "code=#code#"
& "&client_id=#appId#"
& "&client_secret=#key#"
& "&redirect_uri=#uri#"
& "&grant_type=#grant#">
<cfhttp url = "https://accounts.google.com/o/oauth2/token" method="POST">
<cfhttpparam type="body" value="#postBody#">
<cfhttpparam type="header" name="Conternt-Type" value="application/x-www-form-urlencoded">
</cfhttp>
这是错误:
{ "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" }
我在这里做错了什么?我没有看到问题。请帮忙。
我已经关注了这个https://developers.google.com/identity/protocols/OAuth2WebServer
POST有什么具体的原因要自己拼装吗?为了安全起见,试试这个(替换代码片段的所有行):
<cfhttp method="POST" url="https://accounts.google.com/o/oauth2/token">
<cfhttpparam type="formfield" name="grant_type" value="authorization_code">
<cfhttpparam type="formfield" name="redirect_uri" value="#this.redirectURI#">
<cfhttpparam type="formfield" name="client_id" value="#this.appId#">
<cfhttpparam type="formfield" name="client_secret" value="#this.key#">
<cfhttpparam type="formfield" name="code" value="#code#">
</cfhttp>