首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OneLogin OIDC授权请求无效

OneLogin OIDC授权请求无效
EN

Stack Overflow用户
提问于 2018-10-15 20:27:43
回答 1查看 1.2K关注 0票数 0

我有一个带有角4前端的Java应用程序,我正在尝试用OneLogin实现Open授权。我在OneLogin中使用一个重定向URL配置了这个应用程序,该URL是一个API端点,用于收集OneLogin生成的代码。步骤1-3按照OneLogin文档中的描述工作,但是步骤4每次都失败,我不知道为什么。

步骤1:用户尝试使用客户端应用程序启动会话,并被重定向到OpenID提供者(OneLogin),传入客户机ID,这对于该应用程序来说是唯一的。-此操作,用户重定向到由OneLogin.托管的登录页面。

步骤2: OpenID提供程序对特定应用程序实例的用户进行身份验证和授权。-这工作

步骤3:使用预定义的重定向URI将一次性使用的代码传递回web服务器。- URI是服务器上的API端点,它成功地从OneLogin获得代码

步骤4: web服务器将代码、客户端ID和客户端秘密传递给OpenID提供者的令牌端点,OpenID提供程序验证代码并返回一个小时访问令牌。-,这就是我崩溃的地方--

我得到的唯一回复是“授予请求无效”。我正在为这个步骤构建的HTTP POST如下所示:

代码语言:javascript
复制
curl -XPOST "https://openid-connect.onelogin.com/oidc/token"
-H "Content-Type: application/x-www-form-urlencoded"
-d "grant_type=authorization_code
&code=<code returned in step 3>
&redirect_uri=https%3A%2F%2Flocalhost
&client_id=<My OIDC Client ID>
&client_secret=<My OIDC Client Secret>"

每次的反应都是:

代码语言:javascript
复制
{
    "error": "invalid_grant",
    "error_description": "grant request is invalid"
}

我完全不知道下一步该做什么。

EN

回答 1

Stack Overflow用户

发布于 2018-12-21 19:44:00

根据https://developers.onelogin.com/openid-connect/api/authorization-code-grant,您需要对clientid & base64进行编码,并将其包含在auth头中。

代码语言:javascript
复制
curl -XPOST "https://<region>.onelogin.com/oidc/token" \
-H "Authorization: Basic <base64 encoded client_id:client_secret>" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&code=<authorization code>&redirect_uri=<registered redirect uri>"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52824303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档