Commit 3a643078 authored by 马超's avatar 马超

feat: 完善统一认证配置和使用文档

parent fc63064b
...@@ -91,9 +91,13 @@ function validate(resultData, userName) { ...@@ -91,9 +91,13 @@ function validate(resultData, userName) {
![新增应用](../progress/54新增应用.png) ![新增应用](../progress/54新增应用.png)
#### 2.5 拷贝UAA资源库的前端资源 ## 三、LDP前端脚手架标准接入流程
在LDP部署服务器上的用户目录的UAA资源库目录中,如果是普通用户的话,资源目录在 UAA的接入分为三种,一种是通过LDP脚手架接入,一种是通过非LDP脚手架接入,一种通过开放接口接入。如果是非LDP脚手架接入,参考[四、其它前端脚手架接入流程](#四、其它前端脚手架接入流程)。如果是通过开发接口接入,参考[五、开放接口接入流程](#五、开放接口接入流程)
#### 3.1 拷贝UAA资源库的前端资源
通过脚手架接入,需要在LDP部署服务器上的用户目录的UAA资源库目录中,如果是普通用户的话,资源目录在
```shell ```shell
/home/${username}/.ldp/uaaresources /home/${username}/.ldp/uaaresources
...@@ -135,7 +139,7 @@ cp -r mcs/ example/ ...@@ -135,7 +139,7 @@ cp -r mcs/ example/
这样前端资源的静态文件拷贝就完成了,如果有某个领域的登录界面需要修改,就可以到对应的认证域编码(realmCode)目录下修改模板文件。 这样前端资源的静态文件拷贝就完成了,如果有某个领域的登录界面需要修改,就可以到对应的认证域编码(realmCode)目录下修改模板文件。
#### 2.6 添加系统标识为领域的账号 #### 3.2 添加系统标识为领域的账号
打开菜单 **系统维护** => **账号管理** ,点击 **新增** 按钮 打开菜单 **系统维护** => **账号管理** ,点击 **新增** 按钮
...@@ -147,7 +151,7 @@ cp -r mcs/ example/ ...@@ -147,7 +151,7 @@ cp -r mcs/ example/
#### 2.7 给新增的应用添加菜单 #### 3.3 给新增的应用添加菜单
打开菜单 **系统维护** => **应用菜单维护** ,选中刚才 **新建的应用** 打开菜单 **系统维护** => **应用菜单维护** ,选中刚才 **新建的应用**
...@@ -159,7 +163,7 @@ cp -r mcs/ example/ ...@@ -159,7 +163,7 @@ cp -r mcs/ example/
新增菜单后,需要新建角色并对新菜单进行授权。 新增菜单后,需要新建角色并对新菜单进行授权。
#### 2.8 新增新应用角色并对菜单进行授权 #### 3.4 新增新应用角色并对菜单进行授权
打开菜单 **权限管理** => **角色管理** ,点击 **新增** 按钮 打开菜单 **权限管理** => **角色管理** ,点击 **新增** 按钮
...@@ -177,13 +181,13 @@ cp -r mcs/ example/ ...@@ -177,13 +181,13 @@ cp -r mcs/ example/
![关联用户](../progress/62关联用户.png) ![关联用户](../progress/62关联用户.png)
#### 2.9 修改网关配置文件 #### 3.5 修改网关配置文件
打开nacos,在网关的配置文件gateway-service-naocs.yml种添加上应用配置 id、realmcode、clientId。**其中id为自定义,realmcode是认证域编码,clientId是应用ID** 打开nacos,在网关的配置文件gateway-service-naocs.yml种添加上应用配置 id、realmcode、clientId。**其中id为自定义,realmcode是认证域编码,clientId是应用ID**
![网关配置](../progress/63gateway配置.png) ![网关配置](../progress/63gateway配置.png)
#### 2. 10 修改前端脚手架工程 #### 3.6 修改前端脚手架工程
通过git clone 前端脚手架工程 通过git clone 前端脚手架工程
...@@ -197,7 +201,7 @@ git clone http://gitlab.dev.shxrtech.com/ldp/ldp-appui-example.git -b develop ...@@ -197,7 +201,7 @@ git clone http://gitlab.dev.shxrtech.com/ldp/ldp-appui-example.git -b develop
并且修改 **VUE_APP_PROXY_SERVER** 为对应的网关地址。 并且修改 **VUE_APP_PROXY_SERVER** 为对应的网关地址。
#### 2.11 启动前端工程 #### 3.7 启动前端工程
执行以下命令,启动脚手架工程 执行以下命令,启动脚手架工程
...@@ -216,5 +220,88 @@ npm run dev ...@@ -216,5 +220,88 @@ npm run dev
![登录成功](../progress/66登录成功.png) ![登录成功](../progress/66登录成功.png)
## 四、其它前端脚手架接入流程
#### 4.1 非LDP脚手架接入
如果使用非LDP前端脚手架接入,同时也使用UAA的前端登录界面,可以直接跳转到UAA登录界面
http://{server}/uaa-service/viewlogin?realmcode={realmcode}&clientid={clientid}&redirect={redirect}
URL参数含义
| 参数 | 说明 | 示例 |
| ------------- | ---------------------- | ------------------------------------ |
| **server** | 服务地址 | sinra-server0:9080 |
| **realmcode** | 认证域编码 | app |
| **clientid** | 应用ID | 1552294656514 |
| **redirect** | 登录成功后的重定向地址 | http://sinra-server0:9080/example/#/ |
按照示例跳转到以下地址:
http://sinra-server0:9080/uaa-service/viewlogin?realmcode=app&clientid=1552294656514&redirect=http%3A%2F%2Fsinra-server0%3A9080%2Fexample%2F%23%2F
登录成功后,会直接重定向到URL上的redirect地址,这里会重定向到:
http://sinra-server0:9080/example/#/?token={token}&appid={clientid}
这里需要实现截取回调地址上的token和clientId,并在之后的请求的请求头上携带上token的值。
```javascript
//在路由守卫中获取token,伪代码代码示例参考:
router.beforeEach(async(to, from, next) = >{
//获取用户token
constuserToken = to.query['token']
if (!userToken) {
//不存在token,跳转uaa登录地址
window.top.location.href = uaa认证接口地址
} else {
//存在token通过接口获取用户信息
axios.get('mcs-service/user/userinfo', {
headers: {
//token
X-Ldp-Token: userToken,
//应用领域编码
X-Realm: 'app'
}
}).then(res = >{
console.log('用户信息:' + res.data)
}).
catch(error = >{
console.log('请求失败')
})
})
```
## 五、开放接口接入流程
#### 5.1 通过开放接口获取token
如果应用想使用自己的登录界面,可以在MCS创建完服务、实例、领域、应用后,通过开放接口的方式获取到token。
开放接口地址: **http://{server}/uaa-service/open/login**
参数分别为:
| 参数 | 说明 |
| --------- | ---------- |
| uname | 用户名 |
| upass | 用户密码 |
| clientid | 应用ID |
| realmcode | 认证域编码 |
接口信息详情请参考:http://api.dev.shxrtech.com/project/65/interface/api/2314
获取到请求返回的token之后,需要在之后的请求头中携带token
```javascript
headers: {
//token
X-Ldp-Token: userToken,
//应用领域编码
X-Realm: 'app'
}
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment