blade授权码认证关于添加state参数认证失败问题

Blade 未结 1 17

一、该问题的重现步骤是什么?

1. blade平台存在一个应用回调地址:http://127.0.0.1:9999/oauth/callback/blade

2. 授权码地址

2.1、浏览器输入state授权码地址 调整 blade 认证页面

http://g2-test.dg.com:9881/oauth/authorize?client_id=sportApp&response_type=code&redirect_uri=http://127.0.0.1:9999/oauth/callback/blade

输入账号成功回调并且附带验证码code(莫名多了一个state参数)

并且根据上面授权码code可以获得token


2.2.浏览器输入state授权码地址,会 调整到 blade 认证页面

http://g2-test.dg.com:9881/oauth/authorize?client_id=sportApp&response_type=code&redirect_uri=http://127.0.0.1:9999/oauth/callback/blade?state=12345

输入账号提示失败



二、你期待的结果是什么?实际看到的又是什么?

启动结果是,访问带state的授权码链接:

http://g2-test.dg.com:9881/oauth/authorize?client_id=sportApp&response_type=code&redirect_uri=http://127.0.0.1:9999/oauth/callback/blade?state=12345

会动调整到blade登录页面,在登录页面输入账号密码后,重定向地址除了附带code外还附带之前的state


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 这里的state代表的是tenantId,你后面输入12345跳转登录,匹配不到12345的租户就失败了。


    你第一次输入密码成功跳转,携带回来的state是没问题的。


    而你的回调地址不能写callback,因为前段没有这个地址,你登录成功后跳转过来callback自然访问不到,你要填写登陆页的地址。具体格式website.js里就有,你只需要改个地址前缀就行了。 具体地址在这里:https://center.javablade.com/blade/Saber3/src/branch/master/src/config/website.js#L67

    0 讨论(0)
提交回复