YAPI开源插件都挺好,但就是你直接看README,你会崩溃,明明很简单的东西,上面写的是错的,如果一点点排错基础都没有的测试人员,那你不可能搞得定,难道这就是所谓的天下没有白吃的午餐吗?总会以任意形式出现的”门槛“?
最近2月,我公司的所有使用的公共系统,主要是devops涉及的一些系统平台,都做了CAS登陆入口,CAS公共登陆模块也由架构组开发完成,YAPI这个我弄了很久,从最开始啥也不知道,到八了一圈,各类问题遇了一圈,才找了点门道,也就是说解决了问题。
- 在装插件前,我们首先要来安装scss的三个依赖
npm install node-sass -D --unsafe-perm
npm install sass-loader -D --unsafe-perm
npm install style-loader -D --unsafe-perm
--unsafe-perm
的作用:npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。
为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。
- 配置加载sass规则
/data/PRG/yapi/config.json
"module": {
"rules": [
{
"test": ".scss",
"use": [
"style-loader",
"css-loader",
"sass-loader"
]
}
]
}
主要是让程序支持加载scss模块文件,例如下图报错,明明目录对文件存在,但仍然报找不着此模块
- 配置cas
/data/PRG/yapi/config.json,一定要注意语法,每年结尾的,
是否有加,最后一个属性不要加,
等等
"plugins": [
{
"name": "cas",
"options": {
"type": "cas",
"loginServer": "https://cas.demo.com.cn/cas/login",
"emailPostfix": "@demo.com.cn",
"authServer": "https://cas.demo.com.cn/cas/serviceValidate"
}
}
]
注意事项:
loginServer
emailPostfix
authServer
一定要对应自己司的相关信息,一般情况下改个域名就好了。
loginServer
emailPostfix
authServer
属性名,要与插件中client.js和server.js中代码对应的属性名一致,否则就是undefined
- YAPI安装CAS插件
插件地址:https://github.com/wsfe/yapi-plugin-cas/
安装yapi命令行操作:
npm install -g ykit
npm install -g yapi-cli
[root@52-00 yapi]# yapi plugin --name yapi-plugin-cas
安装成功后,进入
/data/PRG/yapi/vendors/node_modules/yapi-plugin-cas
查看插件
server.js
配置与client.js
中配置的loginServer
和authServer
一定要匹配,否则跳转不正确。
github插件里的README写的是错误的。