一、该问题的重现步骤是什么?
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
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
这里的state代表的是tenantId,你后面输入12345跳转登录,匹配不到12345的租户就失败了。
你第一次输入密码成功跳转,携带回来的state是没问题的。
而你的回调地址不能写callback,因为前段没有这个地址,你登录成功后跳转过来callback自然访问不到,你要填写登陆页的地址。具体格式website.js里就有,你只需要改个地址前缀就行了。 具体地址在这里:https://center.javablade.com/blade/Saber3/src/branch/master/src/config/website.js#L67
扫一扫访问 Blade技术社区 移动端