微服务鉴权接口
登陆态检查及鉴权接口 http://account.cluster.gm/auth/check
Method
GET
请求
login_type M string 可选值:STATION, MANAGE, BSHOP
sessionid M string 从cookies中的sessionid中获得
响应
user_id M int
示例
request
http://account.cluster.gm/auth/check?login_type=STATION
response
{ code: 0, msg: "OK", data: { user_id: 123 } }
{ code: 3001, msg: "Unauthorized", data: null }
{ code: 1 or 5xx, msg: "系统繁忙,请稍后重试", data: null }
逻辑
从 cookies 中获取 seesion id 信息,然后从数据库中根据 session id 获取用户的登陆态并返回相关信息。
获取 station 用户信息
GraphQL 入口:http://account.cluster.gm/station/standard_graphql
GraphQL 文档:https://doc.guanmai.cn/模块文档/account模块/station/
获取 manage 用户信息
GraphQL 入口:http://account.cluster.gm/ma/standard_graphql
GraphQL 文档:https://doc.guanmai.cn/模块文档/account模块/ma/
注意 account.cluster.gm 是内网域名,在 docker 只才能访问
例子:
查看用户名
request:
http://account.cluster.gm/ma/standard_graphql?query=query{user(id:123){id,name}}
response:
{
"data": {
"user": {
"id": 123,
"name": "yeliuxing"
}
}
}
查看用户拥有的所有权
request:
http://account.cluster.gm/station/standard_graphql?query=query{
user(id:244){
id
roles {
id
name
permissions {
id
name
}
}
}
}
response:
{
"data": {
"user": {
"roles": [
{
"id": 4243,
"name": "\u7cfb\u7edf\u5206\u914d\u89d2\u8272 57",
"permissions": [
{
"id": 70,
"name": "\u67e5\u770b\u91c7\u8d2d\u62a5\u4ef7\u5355"
},
{
"id": 71,
"name": "\u6dfb\u52a0\u91c7\u8d2d\u62a5\u4ef7\u5355"
},
{
"id": 72,
"name": "\u7f16\u8f91\u91c7\u8d2d\u62a5\u4ef7\u5355"
},
{
"id": 73,
"name": "\u67e5\u770b\u91c7\u8d2d\u5546\u54c1\u89c4\u683c"
},
{
"id": 74,
"name": "\u6dfb\u52a0\u91c7\u8d2d\u5546\u54c1\u89c4\u683c"
},
{
"id": 75,
"name": "\u7f16\u8f91\u91c7\u8d2d\u5546\u54c1\u89c4\u683c"
},
{
"id": 80,
"name": "\u67e5\u770b\u8ba2\u5355"
},
{
"id": 81,
"name": "\u7f16\u8f91\u8ba2\u5355"
},
{
"id": 82,
"name": "\u65b0\u5efa\u8ba2\u5355"
},
{
"id": 83,
"name": "\u5220\u9664\u8ba2\u5355"
},
{
"id": 84,
"name": "\u67e5\u770b\u91c7\u8d2d\u4efb\u52a1"
},
{
"id": 86,
"name": "\u67e5\u770b\u914d\u9001\u4efb\u52a1"
},
{
"id": 87,
"name": "\u67e5\u770b\u7ecf\u8425\u5206\u6790\uff0d\u5168\u91cf\u6210\u4ea4"
},
{
"id": 88,
"name": "\u67e5\u770b\u7ecf\u8425\u5206\u6790\uff0d\u771f\u5b9e\u6210\u4ea4"
},
{
"id": 89,
"name": "\u67e5\u770b\u7ecf\u8425\u5206\u6790\uff0d\u54c1\u7c7b\u6210\u672c"
},
{
"id": 90,
"name": "\u67e5\u770b\u7ecf\u8425\u5206\u6790\uff0d\u8ba2\u5355\u660e\u7ec6"
},
{
"id": 91,
"name": "\u67e5\u770b\u5f02\u5e38\u5206\u6790"
},
{
"id": 102,
"name": "\u67e5\u770b\u901a\u7528SPU"
},
{
"id": 106,
"name": "\u6dfb\u52a0\u672c\u7ad9SPU"
},
{
"id": 107,
"name": "\u7f16\u8f91\u672c\u7ad9SPU"
},
{
"id": 108,
"name": "\u67e5\u770b\u5206\u62e3\u914d\u7f6e"
},
{
"id": 109,
"name": "\u7f16\u8f91\u5206\u62e3\u914d\u7f6e"
},
{
"id": 310,
"name": "\u53f8\u673a\u7ba1\u7406"
},
{
"id": 417,
"name": "\u6253\u5370\u88c5\u8f66\u5355\u548c\u6e05\u5355"
},
{
"id": 494,
"name": "\u67e5\u770b\u5e97\u94fa\u8fd0\u8425"
},
{
"id": 496,
"name": "\u7f16\u8f91\u5e97\u94fa\u88c5\u4fee"
},
{
"id": 499,
"name": "\u5bfc\u51fa\u62a5\u4ef7\u5355\u5546\u54c1"
},
{
"id": 500,
"name": "\u6253\u5370\u91c7\u8d2d\u4efb\u52a1\u548c\u660e\u7ec6"
},
{
"id": 509,
"name": "\u7f16\u8f91\u57fa\u7840\u8bbe\u7f6e"
},
{
"id": 510,
"name": "\u67e5\u770b\u5e97\u94fa\u88c5\u4fee"
},
{
"id": 544,
"name": "\u67e5\u770b\u5206\u62e3\u8fdb\u5ea6"
},
{
"id": 545,
"name": "\u67e5\u770b\u5206\u62e3\u660e\u7ec6"
}
]
}
],
"id": 244
}
}
}
获取 bshop 用户信息
TODO
Web 服务需要提供给发布脚本的接口
- 提供一个 project_name (比如 station,manage,order),发布脚本会把每一个 web 服务放在
/data/www/${project_name}/${branch_name}/
目录下 - 提供任意一种方式(比如一个函数、一条 shell 语句 ...),可以让发布脚本获取下面的信息
- 这台机器上运行了这个工程的哪些分支
- 这些分支分别占用了哪些端口
- 提供一个非常简单的 http 接口,用于在启动工程后,由发布脚本简单测试一下工程是否启动成功。
-
在工程中放一个 shell 脚本文件,可以实现下面的功能(其中 1234 是端口号,由发布脚本提供)
sh xxx/yyy start 1234 sh xxx/yyy stop sh xxx/yyy reload
docker
进入和退出 docker 环境
- 登录到 devhost,切换到 superman 用户
- 执行 sudo docker exec -it wwen6 zsh 进入 docker 环境
- 进入 /data/www/fe-micro/master 进行相关操作
- 执行 exit 退出 docker 环境
在 docker 环境中安装 node v12
apt update
apt install -y curl
curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt install -y nodejs
数据库
station:
host: "127.0.0.1"
user: "root"
password: ""
port: 3306