如何使用平台的授权码模式进行认证

Blade 未结 1 18

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

1. 在平台创建了一个新应用 sportApp
image.png

2. 浏览器访问获取授权码链接,调整不到平台的登录界面(并且没有报错)
http://g2-test.dg.com:9880/bladex/oauth/authorize?client_id=sportApp&response_type=code&redirect_uri=http://1234567
image.png


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

浏览器输入:http://g2-test.dg.com:9880/bladex/oauth/authorize?client_id=sportApp&response_type=code&redirect_uri=http://1234567
后,可以调转到登录页面,输入账号密码后,重定向到回调地址并且附件授权码



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

1条回答
  •  1. 你们配置的跳转到单点登录的地址是不对的,你们要配置后端服务地址(把后端服务也映射出来),配置路径在这里:https://center.javablade.com/blade/Saber3/src/branch/master/src/config/website.js#L67 ,把你们配置的前端地址改成后端地址。


     2. 比如你们把后端接口的地址映射出来后是 http://g2-test.dg.com:9881 (如果是cloud版本的工程,那需要映射的是 blade-auth 服务的地址),那么就把这个地址配置到 ssoBaseUrl 的参数上,同时 redirectUri 配置的是前端的登陆页地址。

    注意,前端部署的时候nginx还需要加上如下配置

    location ^~ /oauth/redirect {
         rewrite ^(.*)$ /index.html break;
    }


     3. 以我们线上演示系统为例,前端访问地址是 :https://saber3.bladex.cn/ 那么 website.js 里配置的 ssoBaseUrl 就不能是前端的地址,而应该是后端映射好的 https://api.bladex.cn/ (这个地址就是后端地址,访问 /oauth/authorize 后,就会跳转到单点登录页面了)


     4. 单点登录完整的流程如下:


    -> 按照前面3点提到的内容预设好配置信息

    -> 系统部署后访问前端登陆页 

    -> 登陆页点击单点登录地址  

    -> 通过连接访问后端部署好的地址  

    -> 后端地址访问/oauth/authorize后生成单点登录页面 

    -> 输入账号密码点击登陆  

    -> 单点登录界面校验成功后通过提前配置的 redirectUrl 回跳至前端页面 

    -> 前端页面截取单点登录传递的参数  

    -> 通过参数调用 /oauth/token 接口获取令牌  

    -> 令牌返回成功 

    -> 登录成功跳转至系统首页

    0 讨论(0)
提交回复