add myoffice scripts
This commit is contained in:
52
myoffice_projects/co_scripts/pgs_avatar_sync/README.md
Normal file
52
myoffice_projects/co_scripts/pgs_avatar_sync/README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# PGS_AVATAR_SYNC
|
||||
|
||||
Скрипт использует Flask для REST API.
|
||||
|
||||
Позволяет при входе пользователей в CO обращаться на IPA сервер для получения фотографии пользователя, а затем, при необходимости, отправляет её в COAPI для обновления в профиле пользователя.
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
| Название | Значение по умолчанию | Описание |
|
||||
| ------------ | ---------------------------------------- | --------------------------------------------------- |
|
||||
| CO_API_URL | "https://coapi.hyperus.team/api/v1/auth" | Конечная точка COAPI для работы с "profile/picture" |
|
||||
| IPA_ADDRESS | ipa.hyperus.team | Адрес сервера IPA |
|
||||
| IPA_LOGIN | automated.carbon | Учетная запись подключения к IPA |
|
||||
| IPA_PASSWORD | - | Пароль учетной записи подключения к IPA |
|
||||
|
||||
## Установка
|
||||
|
||||
1. Собрать образ и запустить контейнер на сервере CO.
|
||||
```bash
|
||||
docker build . --build-arg FLASK_PORT=8085 --tag pgs_avatar_sync:0.0.1
|
||||
docker run -d -e IPA_PASSWORD="securepassword" --name pgs_avatar_sync --network host --restart always pgs_avatar_sync:0.0.1
|
||||
```
|
||||
|
||||
2. Добавить дополнительную обработку на стороне `openresty-lb-core-auth`:
|
||||
|
||||
#### `/opt/openresty/nginx/conf/co/lua/auth/co_auth_login.lua`
|
||||
|
||||
Ищем строку в конце файла (~60):
|
||||
```lua
|
||||
ngx.say(cjson.encode({ success = "true", token = token }));
|
||||
```
|
||||
|
||||
Добавляем перед ней:
|
||||
```lua
|
||||
-- Send data for update avatars
|
||||
local httpc = http:new();
|
||||
local request = {
|
||||
method = "POST",
|
||||
body = cjson.encode({ login = login, token = token }),
|
||||
headers = {
|
||||
["Content-Type"] = "application/json; charset utf-8"
|
||||
},
|
||||
ssl_verify = false
|
||||
};
|
||||
--- Необходимо указать корректный порт, FLASK_PORT переданный при сборке
|
||||
local avatar_res, avatar_err = httpc:request_uri("http://172.17.0.1:8085/avatar", request);
|
||||
if not avatar_res then
|
||||
ngx.log(ngx.ERR, "Request failed: ", avatar_err)
|
||||
end
|
||||
httpc:close();
|
||||
ngx.log(ngx_INFO, "Update avatar for <" .. login .. ">.");
|
||||
```
|
||||
Reference in New Issue
Block a user