yii2-oauth2-server 中需要 client_id 和 client_secret 的资源所有者授权类型
Resource Owner grant type requiring client_id and client_secret in yii2-oauth2-server
为什么密码 grant_type 必须与客户端凭据一起提供(在此实施中)???。 oauth2 资源所有者规范只需要
{
"grant_type" : "password",
"username" : "some_user_name",
"password" : "some_password"
}
此实现还需要 client_id 和 client_secret 与此请求一起发送才能成功.
我只想知道我是否遗漏了什么
我想授予从我的 SPA 访问我的受保护资源的权限。在浏览器源代码中公开客户端凭据存在潜在危险。
此外,https://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/ 的原始库不会强制使用资源所有者授予类型的客户端凭据
更新 1 13-12-2016
在原来的图书馆看书,我发现他们有"public client"的概念(即没有client_secret的客户端)。
使用 public 客户端,我可以从请求中省略 client_secret。不管怎样,我又看了一遍资源所有者规范,上面没有提到。
这样,资源所有者令牌请求必须以这种方式执行(非标准)
{
"grant_type" : "password",
"username" : "some_user_name",
"password" : "some_password"
"cliend_id" : "some_client_id"
}
再见
谢谢
出于参考目的,OAuth2 规范确实适用于没有密码的客户端仍然可以在请求正文中传递 client_id
参数的情况,即使客户端身份验证不会完成。在第 2.3.1 节中,您有:
(...) the authorization server MAY support including the client credentials in the request-body using the following parameters:
client_id
REQUIRED. The client identifier issued to the client during the registration process described by Section 2.2.
client_secret
REQUIRED. The client secret. The client MAY omit the parameter if the client secret is an empty string.
为什么密码 grant_type 必须与客户端凭据一起提供(在此实施中)???。 oauth2 资源所有者规范只需要
{
"grant_type" : "password",
"username" : "some_user_name",
"password" : "some_password"
}
此实现还需要 client_id 和 client_secret 与此请求一起发送才能成功.
我只想知道我是否遗漏了什么
我想授予从我的 SPA 访问我的受保护资源的权限。在浏览器源代码中公开客户端凭据存在潜在危险。
此外,https://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/ 的原始库不会强制使用资源所有者授予类型的客户端凭据
更新 1 13-12-2016
在原来的图书馆看书,我发现他们有"public client"的概念(即没有client_secret的客户端)。
使用 public 客户端,我可以从请求中省略 client_secret。不管怎样,我又看了一遍资源所有者规范,上面没有提到。
这样,资源所有者令牌请求必须以这种方式执行(非标准)
{
"grant_type" : "password",
"username" : "some_user_name",
"password" : "some_password"
"cliend_id" : "some_client_id"
}
再见
谢谢
出于参考目的,OAuth2 规范确实适用于没有密码的客户端仍然可以在请求正文中传递 client_id
参数的情况,即使客户端身份验证不会完成。在第 2.3.1 节中,您有:
(...) the authorization server MAY support including the client credentials in the request-body using the following parameters:
client_id
REQUIRED. The client identifier issued to the client during the registration process described by Section 2.2.client_secret
REQUIRED. The client secret. The client MAY omit the parameter if the client secret is an empty string.