Din*_*tra 4 coldfusion oauth-2.0 coldfusion-10 google-signin
我正在尝试将 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>
Run Code Online (Sandbox Code Playgroud)
这是错误:
{ "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" }
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我没有看到问题所在。请帮忙。
我已经关注了这个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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |