Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mx4alex/goauth
🔑🔐Authentication REST API service written on Go
https://github.com/mx4alex/goauth
clean-architecture docker gin golang golang-api jwt mongodb rest-api swagger
Last synced: 28 days ago
JSON representation
🔑🔐Authentication REST API service written on Go
- Host: GitHub
- URL: https://github.com/mx4alex/goauth
- Owner: mx4alex
- Created: 2023-08-28T13:29:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-24T12:12:18.000Z (7 months ago)
- Last Synced: 2024-11-06T01:04:18.014Z (3 months ago)
- Topics: clean-architecture, docker, gin, golang, golang-api, jwt, mongodb, rest-api, swagger
- Language: Go
- Homepage:
- Size: 9.07 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# goauth
Сервис для аутентификации, написанный на Go## Установка и конфигурация
- Склонировать репозиторий:
```
git clone https://github.com/mx4alex/goauth.git
```
- Настроить конфигурацию в файле `config.yaml` и окружение в файле `.env`
- Запустить *docker compose*
```
docker compose up --build
```## Использование
### Сервис поддерживает следующие эндпоинты:
- `POST /auth/sign-up` регистрирует нового пользователя
- `POST /auth/sign-in` авторизирует пользователя
- `POST /auth/refresh` обновляет refresh token пользователяДокументация находится в папке docs
Визуальная документация Swagger UI доступна по адресу [`http://localhost:8080/swagger/index.html#`](http://localhost:8080/swagger/index.html#)
### Формат запросов
#### Sign Up
* Метод: `POST`
* Эндпоинт: `http://localhost:8080/auth/sign-up`
* Формат запроса:
```json
{
"name": "ivan",
"username": "ivan007",
"password": "qwerty12345"
}
```
* Формат ответа:
```json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTM1MDUxNzIuOTc1MzgzLCJpYXQiOjE2OTM1MDQyNzIuOTc1NDEyLCJ1c2VybmFtZSI6Iml2YW4wMDcifQ.5ZB7_QHbohRxxhbxtuBqOGwvO-bZ2zoD9g5jLF9O9Zk",
"refresh_token": "3423e6672e811489b97e99640120aa11cf74e8dbddd7ee6e75742a7abef74066"
}
```#### Sign In
* Метод: `POST`
* Эндпоинт: `http://localhost:8080/auth/sign-in`
* Формат запроса:
```json
{
"username": "ivan007",
"password": "qwerty12345"
}
```
* Формат ответа:
```json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTM1MDUyNDEuMjAyMDE2LCJpYXQiOjE2OTM1MDQzNDEuMjAyMDE4LCJ1c2VybmFtZSI6Iml2YW4wMDcifQ.gcxo4MlHCkgUT9QGp--73rmBJL7FENqbScBx-qEcNOY",
"refresh_token": "188ea22713b990a71f66f664534f8670151a5846f32ac04641110988d147610c"
}
```#### Refresh
* Метод: `POST`
* Эндпоинт: `http://localhost:8080/auth/refresh`
* Формат запроса:
```json
{
"refresh_token": "188ea22713b990a71f66f664534f8670151a5846f32ac04641110988d147610c"
}
```
* Формат ответа:
```json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTM1MDUzMDEuODQ5ODY5LCJpYXQiOjE2OTM1MDQ0MDEuODQ5ODcxMiwidXNlcm5hbWUiOiJpdmFuMDA3In0.ppetk8epzX-5PMz4WEICSiArlqEcXyhgKi8_gz-GQHo",
"refresh_token": "d16accc31b9213361aec0eb4874aa237ba816c87a8d61b6e00eed1256f63c17f"
}
```