Authentication service for the Ely.by and Minecraft
Go to file
ErickSkrauch dd2c4bc413 Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2.
Все действия, связанные с аккаунтами, теперь вызываются через url `/api/v1/accounts/<id>/<action>`.
Добавлена вменяемая система разграничения прав на основе RBAC.
Теперь oAuth2 токены генерируются как случайная строка в 40 символов длинной, а не UUID.
Исправлен баг с неправильным временем жизни токена в ответе успешного запроса аутентификации.
Теперь все unit тесты можно успешно прогнать без наличия интернета.
2017-09-19 20:06:17 +03:00
api Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
common Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
console Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
data Структура проекта окончательно загнана в Docker 2016-10-02 01:20:40 +03:00
docker Добавлена команда для зачистки хранилища ключей активации по E-mail 2017-03-07 20:14:54 +03:00
tests Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
.dockerignore Структура проекта окончательно загнана в Docker 2016-10-02 01:20:40 +03:00
.env-dist Удалено дублирование параметров подключения к REDIS в .env файле [skip ci] 2016-12-11 15:05:01 +03:00
.gitignore Структура проекта окончательно загнана в Docker 2016-10-02 01:20:40 +03:00
.gitlab-ci.yml Удалено использование aufs для построения билда в gitlab-ci 2017-09-07 02:37:52 +03:00
autocompletion.php Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
composer.json Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2. 2017-09-19 20:06:17 +03:00
docker-compose.dev.yml Nginx теперь собирается отдельно 2016-12-02 11:38:14 +03:00
docker-compose.prod.yml Nginx теперь собирается отдельно 2016-12-02 11:38:14 +03:00
Dockerfile Обновлён accounts-php до версии 1.4.0 (PHP 7.1.7, NodeJS 8.2.1, NPM 5.3.0) 2017-08-02 02:43:21 +03:00
Dockerfile-dev Обновлён accounts-php до версии 1.4.0 (PHP 7.1.7, NodeJS 8.2.1, NPM 5.3.0) 2017-08-02 02:43:21 +03:00
README.md Обновлён README.md файл 2016-11-23 21:49:56 +03:00
yii Восстановлен запуск тестов 2016-09-19 01:01:19 +03:00

Accounts Ely.by

Развёртывание dev [backend]

Предварительно нужно установить git, docker и его docker-compose.

За тем нужно установить, настроить и запустить nginx-proxy контейнер. Это делается один раз в рамках системы и в дальнейшем используется и для других проектов.

Также необходимо иметь доступ к registry.ely.by. Для этого выполнить команду docker login registry.ely.by, ввести свой логин и пароль. Если доступа нету, то нужно его попросить у кого-нибудь, кто может его выдать.

За тем сливаем репозиторий:

git clone git@gitlab.ely.by:elyby/accounts.git account.ely.by
cd account.ely.by

Далее нужно создать .env, docker-compose.yml и id_rsa файлы:

cp .env-dist .env
cp docker-compose.dev.yml docker-compose.yml
cp ~/.ssh/id_rsa id_rsa # Использовать ссылку нельзя

Касательно файла id_rsa: часть зависимостей находятся в наших приватных репозиториях, получить доступ куда можно только в том случае, если в контейнере окажется ключ, который имеет доступ к этим репозиториям.

Все вышеперечисленные файлы находятся под gitignore, так что с конечными файлами можно произвести все необходимые манипуляции под конкретную задачу разработки. В файле .env обязательно следует задать JWT_USER_SECRET, иначе авторизация на бекенде не заработает.

После этого просто выполняем старт всех контейнеров:

docker-compose up -d

Контейнеры автоматически сбилдятся и начнут свою работу.

Развёртывание dev [frontend]

Чтобы поднять сборку frontend приложения, необходимо иметь установленный в системе Node.js версии 5.x или 6.x, а так же npm 3-ей версии (npm i -g npm для обновления).

За тем переходим в папку frontend и устанавливаем зависимости:

cd frontend
npm i

После того, как все зависимости будут установлены, можно поднять dev-сервер. Здесь есть 2 пути: можно, следуя инструкции выше, поднять backend на своей машине через Docker. Если же разработка не привязывается к специфичной версии backend, то более быстрым и удобным способ будет использовать наш dev-сервер, расположенный под адресу https://dev.account.ely.by.

В любом из случаев необходимо в папке frontend/config скопировать файл template.env.js в env.js (находится под .gitignore) и указать в параметре apiHost или свой локальный сервер (тот хост, что был указан в .env как VIRTUAL_HOST), или указав просто https://dev.account.ely.by.

После того, как это будет сделано, запускаем dev-сервер (находясь в папке frontend):

npm start

dev-сервер поднимется на 8080 порту и будет доступен по адресу http://localhost:8080.

Как влезть в работающий контейнер

Начиная с версии docker-compose 1.9.0, появилась команда docker-compose exec, которая позволяет выполнить на работающем контейнере произвольную команду, основываясь на имени сервиса в compose файле.

docker-compose exec app bash

// Старый вариант

Сперва, с помощью команды docker ps мы увидим все запущенные контейнеры. Нас интересуют значения из первой колонки CONTAINER ID или NAMES. Узнать, чему они соответствуют можно прочитав название IMAGE из 2 колонки. Чтобы выполнить команду внутри работабщего контейнера, нужно выполнить:

docker exec -it accountelyby_app_1 bash

Где accountelyby_app_1 - одно из значений CONTAINER ID или NAMES. Для выхода из контейнера используем exit.