- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 Passport 2.0 和 Laravel 5.4 成功实现了授权码授予和密码授予。添加 Passport::enableImplicitGrant(); 后在 AuthServiceProvider.php 中,我尝试使用 angular2 应用程序实现隐式授权。
getImplicitAccessToken() {
const headers = new Headers({
'Content-Type': 'application/json',
'Accept' : 'application/json'
});
const query = {
'grant_type' : 'token',
'client_id' : Constants.IMPLICIT_TEST_CLIENT_ID,
'redirect_uri' : window.location.origin + '/implicit-code-grant',
'scope': ''
};
const params = this.getParamsFromJson(query);
window.location.href = Constants.OAUTH_AUTHORIZATION_URL + '?' + params.toString();
}
private getParamsFromJson(query: any) {
const params = new URLSearchParams();
for (const key in query) {
params.set(key, query[key]);
}
return params;
}
但是我收到了 unsupported_grant_type 错误
最佳答案
在 Laravel 5.4 文档中执行隐式授予类型时答案:
为什么隐式授予不起作用
按照教程的结果是:
// 20170711152854
// http://oauth2server1/oauth/authorize?KEY=14997536295521&client_id=1&redirect_uri=http%3A%2F%2Fauthorizationgrantclient1%2Fcallback&response_type=token&scope=%3FXDEBUG_SESSION_START%3DECLIPSE`enter code here`_DBGP
{
"error": "unsupported_grant_type",
"message": "The authorization grant type is not supported by the authorization server.",
"hint": "Check the `grant_type` parameter"
}
============================================================================================
在隐式授予 token 请求代码中,它发出请求: http://oauth2server1/oauth/authorize ?$查询
============================================================================================
oauth/authorize GET 请求的处理程序是:Laravel\Passport\Http\Controllers\AuthorizationController@authorize根据 php artisan 路线:列表
============================================================================================
...某处
============================================================================================
In vendor\league\oauth2-server\src\AuthorizationServer.php -> function validateAuthorizationRequest()
/**
* Validate an authorization request
*
* @param ServerRequestInterface $request
*
* @throws OAuthServerException
*
* @return AuthorizationRequest
*/
public function validateAuthorizationRequest(ServerRequestInterface $request)
{
foreach ($this->enabledGrantTypes as $grantType)
{
if($grantType->canRespondToAuthorizationRequest($request)) // <— ValidationStartsHere
{
return $grantType->validateAuthorizationRequest($request);
}
}
throw OAuthServerException::unsupportedGrantType();
}
============================================================================================
…在某处
============================================================================================
In vendor/league/oauth2-server/src/Grant/AuthCodeGrant.php -> function canRespondToAuthorizationRequest()
/**
* {@inheritdoc}
*/
public function canRespondToAuthorizationRequest(ServerRequestInterface $request)
{
return (array_key_exists('response_type', $request->getQueryParams()) // TRUE
&& $request->getQueryParams()['response_type'] === 'code' // FALSE
&& isset($request->getQueryParams()['client_id']) // TRUE
);
}
the values of the following variables are as follows:
$request->getQueryParams():
“KEY” => “14997536295521”,
“client_id” => “1”,
“redirect_uri” => “http://authorizationgrantclient1/callback”, // refer this value back to how to make an implicit grant token request
“response_type” => “token”,
“scope” => “”
作为效果...此代码始终返回 false,并且代码执行返回到调用函数
============================================================================================
going back to vendor\league\oauth2-server\src\AuthorizationServer.php->validateAuthorizationRequest()
/**
* Validate an authorization request
*
* @param ServerRequestInterface $request
*
* @throws OAuthServerException
*
* @return AuthorizationRequest
*/
public function validateAuthorizationRequest(ServerRequestInterface $request)
{
foreach ($this->enabledGrantTypes as $grantType) {
if ($grantType->canRespondToAuthorizationRequest($request)) {
return $grantType->validateAuthorizationRequest($request);
}
}
throw OAuthServerException::unsupportedGrantType(); // <—looks familiar?
}
============================================================================================
…某处
============================================================================================
In vendor\league\oauth2-server\src\Exception\OAuthServerException.php->function unsupportedGrantType()
/**
* Unsupported grant type error.
*
* @return static
*/
public static function unsupportedGrantType()
{
$errorMessage = 'The authorization grant type is not supported by the authorization server.';
$hint = 'Check the `grant_type` parameter';
return new static($errorMessage, 2, 'unsupported_grant_type', 400, $hint);
}
看起来非常熟悉对吧?
关于php - 隐式授予 Laravel 5.4 护照 unsupported_grant_type 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907749/
我们使用 Web 服务器身份验证流程实现了 OAuth 2.0。十月/十一月时运行良好,但突然停止运行。每当我们尝试授权另一个客户端时,服务器都会返回 (400) Bad Request with t
我正在尝试使用 django 发送请求,以使用 OAuth2 从我的 api 获取 access_token。我正在执行此代码: data = {'username': 'admin', 'passw
我有以下问题: 我正在创建一个 API(我是新来的) 有了这个 API,我想使用另一个 API 或 WebService 在 Postman 中,我向 URL 发出了一个 get 请求,它返回 OK
我正在尝试使用 alamofire 登录。我正在使用以下代码: let parameters = [ "username": "2gggggjggg",
我一直在尝试获取最简单的 IdentityServer4 示例,以便在后面的纯代码中请求访问。我可以在使用客户端请求时获得访问 token ,但在进行用户登录时却不能。 var discos = ne
我正在尝试让 discord OAuth 正常工作。在文档中,需要生成一个代码,这一步效果很好,但之后是生成 token 。它要求使用正确的参数发出 POST 请求,但它总是给我带来错误:{"erro
我正在玩 laravel 并尝试启用客户端凭据授予以保护某些 api 端点。 提供一些上下文: 我想创建一个位于数据库和多个网站(和 SPA)之间的 api。因此,我将能够进行一些监控(哪些网站/SP
问题 当我尝试验证从 Apple SSO 客户端流程返回的 code 时,我不断收到 unsupported_grant_type 400 错误。 docs假设当经过身份验证的客户端无权使用授权类型时
我正在尝试从 Pay Pal REST API 获取访问 token ,遵循这篇文章:https://developer.paypal.com/docs/api/overview/#get-an-ac
我正在尝试按照 docs 获取 Sage One API 的访问 token 使用 Guzzle (v6)/Laravel 5.2(Laravel 的参与与本题无关),卡在“请求访问 token ”阶
您好,我尝试做一个 Web 应用程序,但遇到了问题。当我从/oauth/token 请求 token 时,我收到此响应: {"error":"unsupported_grant_type","mess
我正在创建一个访问 Azure 上托管的数据库的 WebApi。实现基于 token 的身份验证后,它在本地完美运行,但在 Azure 上发布后,当我尝试获取访问 token 时,在 Postman
我正在创建一个访问 Azure 上托管的数据库的 WebApi。实现基于 token 的身份验证后,它在本地完美运行,但在 Azure 上发布后,当我尝试获取访问 token 时,在 Postman
我正在使用 Vapor 和 SWIFT 3 运行 Xcode 8.1。 我正在向谷歌服务器发送请求以获取授权 token ,这样我就可以调用 FireBaseDB API,但出现错误:unsuppor
我正在尝试使用 Node.js 应用程序访问 Spotify Web API。我已将 grant_type 指定为 authorization_code,但收到 unsupported_grant_t
我正在使用概述的“ token 检索(代码流)”here通过 OAuth2 检索 Reddit Api 的访问 token 。我已设法获得“code”字符串,但在尝试检索访问 token 时出现 un
我正在尝试将 paypal 集成到我的应用程序中,但出现 400 错误 [unsupported_grant_type] 授予类型为 NULL axios .post( '
我是 Salesforce 开发的新手,正在尝试连接到 Salesforce 来获取 token 。 我想我的问题有两个:1) 是否必须通过网页进行SF认证? 2)如果没有,为什么这不起作用?当我尝试
我已经使用 Passport 2.0 和 Laravel 5.4 成功实现了授权码授予和密码授予。添加 Passport::enableImplicitGrant(); 后在 AuthServiceP
我找遍了SO都无济于事,仍然没有解决方案。我正在尝试使用 asp.net 控制台应用程序和 httpclient 从第三方服务获取身份验证 token 。在 Postman 中一切正常,但在 C# 中
我是一名优秀的程序员,十分优秀!