oauth2 php库客户端授权

oauth2 php库客户端授权,php,oauth,oauth-2.0,google-code,Php,Oauth,Oauth 2.0,Google Code,我在用电话。我对如何从addClient.php页面转到authorize.php页面感到困惑 目前,我在addClient.php页面的中输入了一些凭证,这些凭证正确地插入到我的数据库中。不幸的是,当我将浏览器指向authorize.php页面时,出现以下错误: {"error":"invalid_client"} 有人能帮我理解为什么authorize.php没有从我的数据库中提取我的客户端数据吗?以便使用给定的示例代码访问受保护的资源: 1) 创建客户端(提供客户端id、客户端机密、重定

我在用电话。我对如何从
addClient.php
页面转到
authorize.php
页面感到困惑

目前,我在
addClient.php
页面的
中输入了一些凭证,这些凭证正确地插入到我的数据库中。不幸的是,当我将浏览器指向
authorize.php
页面时,出现以下错误:

{"error":"invalid_client"}

有人能帮我理解为什么
authorize.php
没有从我的数据库中提取我的客户端数据吗?

以便使用给定的示例代码访问受保护的资源:

1) 创建客户端(提供客户端id、客户端机密、重定向uri):

2) 从授权服务器获取身份验证代码:

/authorize.php?client_id=foo&response_type=code
它会将您重定向到步骤1中指定的重定向uri,添加
code
作为
GET
参数

3) 执行
POST
请求以获取访问令牌:

/token.php 
使用post参数:

grant_type=code&client_id=foo&code=[AUTH_CODE_FROM_STEP_2]&client_secret=[SECRET]&redirect_‌​uri=[REDIRECT_URI_FROM_STEP_1]
它将为您提供JSON,其中包含
access\u token

4) 获取受保护的资源(
oauth_令牌
可以作为
GET
POST
param传递)


另外,我不知道您是否正在处理一些遗留代码,但是这个库已经过时了,因为它基于oauth 2的09(草稿)版本。官方页面上引用了一些最新的实现。您可能想看看它们。

谢谢。嗯,
authorize.php?client_id=foo
仍然给出
{“error”:“invalid_client”}
。我想我需要
client\u id
加上其他参数?是的,也许我应该用一个更新的实现。虽然这些看起来不那么简单,这是我最初的目标。是否对其中一个有偏好?是的,您还需要
response\u type
参数(
=token
)。至于较新的oauth库,所有这些库都有测试,看起来不错,尽管我最喜欢——类的组织方式、选择的接口等等(我想这更像是个人喜好),谢谢。好的,当我这样做时它会工作:
authorize.php?client\u id=foo&response\u type=token
。但是,当我单击“yep”时,我再次得到
invalid\u client
。表单提交后的url如下所示:
authorize.php?state=#access_token=9459eb38ff686bdc92e579cebdb1f7d5&expires_in=3600&scope=
。将
&scope=public
添加到第一个authorize.php查询字符串并不能防止出现错误。想法?我认为它是正确的:response_type=token意味着它在最新的oauth 2 rfc中被称为“隐式授权”,或者在草案v中被称为“用户代理客户端配置文件”。9 (). 当您创建一个客户端时,您应该提供一个重定向uri,该uri将呈现一个包含js代码的页面。Js然后可以访问URI中的#access#令牌片段,并使用它请求受保护的资源。试试它-fetch protected_resource.php?oauth_token=[ACCESS_token]。对于服务器流,您首先需要从授权服务器(
authorize.php?client_id=foo&response\u type=code
)获取授权代码,然后执行
POST
请求以获取访问令牌(
token.php
带post参数:
grant\u type=code&client\u id=foo&code=[AUTH\u code]&client\u secret=[secret]&redirect\u uri=[uri]
)然后用
受保护的资源获取受保护的资源。php?oauth\u令牌=[ACCESS\u token]
oauth\u令牌
可以作为
GET
post
参数传递)。
grant_type=code&client_id=foo&code=[AUTH_CODE_FROM_STEP_2]&client_secret=[SECRET]&redirect_‌​uri=[REDIRECT_URI_FROM_STEP_1]
/protected_resource.php?oauth_token=[ACCESS_TOKEN_FROM_STEP_3]