# ვებაპლიკაციისთვის

ვებაპლიკაციისთვის ავთენტიფიკაცია ხორციელდება შემდეგი სქემით:

1.	მომხმარებელი გადაიყვანეთ მისამართზე https://account.bog.ge/auth/realms/bog/protocol/openid-connect/auth, query string-ში მითითებული შემდეგი პარამეტრებით:
- `client_id` - თქვენი აპლიკაციის `client_id`.
- `response_type` - მნიშვნელობად გადაეცემა ფიქსირებული ტექსტი: `code`.
- `scope` - მნიშვნელობად გადაეცემა ფიქსირებული ტექსტი: `corp`.
- `redirect_uri` - მნიშვნელობად გადაეცემა თქვენი აპლიკაციის `redirect uri`.
- `kc_locale` - ინტერფეისის ენა. `ka` -ქართული ენის შემთხვევაში, ამ პარამეტრის გარეშე ინგლისური ენის შესაბამისი ინტერფეისი გამოჩნდება.

მაგალითად, თუ თქვენი აპლიკაციის `client id` არის `codeclient`, ხოლო `redirect uri` არის `https://example.com/callback` მაშინ ამ მისამართს ექნება ასეთი სახე (url კოდირების შემდეგ): https://account.bog.ge/auth/realms/bog/protocol/openid-connect/auth?client_id=codeclient&response_type=code&scope=corp&redirect_uri=https%3A%2F%2Fexample.com%3A44312%2Fcallback

2.	მომხმარებელი დაადასტურებს აპლიკაციის მოთხოვნას.
3.	მომხმარებელი გადამისამართდება redirect_uri მისამართზე, query string-ში მითითებული შემდეგი პარამეტრით:
code - დროებითი კოდი.
4.	გაიარეთ ავთენტიფიკაცია HTTP Basic Auth-ის გამოყენებით. სერვისის გამოძახების შედეგად, სერვერის მიერ ბრუნდება Bearer Token, რომელიც შემდგომი მეთოდების  გამოძახებისთვის არის ავთენტიფიკაციის პარამეტრი.

## Header-ის პარამეტრები

- `Content-Type` — string, required

  გადაეცემა „application/x-www-form-urlencoded“ მნიშვნელობა

- `Authorization` — string, required

  ავთენტიფიკაცია `HTTP Basic Auth`-ის გამოყენებით. სახელად გამოიყენება თქვენი აპლიკაციის `client_id`, ხოლო პაროლად თქვენი აპლიკაციის `client_secret`.

## Body-ის პარამეტრები

- `grant_type` — string, required

  მნიშვნელობად გადაეცემა ფიქსირებული ტექსტი: `client_credentials`

- `code` — string, required

  დროებითი კოდი

- `redirect_uri` — string, required

  მნიშვნელობად გადაეცემა თქვენი აპლიკაციის `redirect_uri`.

## დაბრუნებული პარამეტრები

- `access_token` — string

  ავტორიზაციის სერვერის მიერ დაბრუნებული Token-ის მნიშვნელობა.

- `token_type` — string

  Token-ის ტიპი (ბრუნდება ტექსტური მნიშვნელობა - `bearer`).

- `app_id` — string

  არ გამოიყენება.

- `expires_in` — string

  აბრუნებს რიცხვით მნიშვნელობას, თუ რამდენი წამის განმავლობაში არის აქტიური Token.

- `refresh_expires_in` — string

  მაქსიმალური დრო, რომლის ამოწურვის შემდეგაც Token გახდება არავალიდური. გვაძლევს საშუალებას, ტოკენის განახლების დრო უფრო მცირე იყოს, ვიდრე სესიის.

- `not-before-policy` — string

  გამოიყენება განახლების ან სესიის Token-ის კომპრომეტირების შემთხვევაში, როგორც დამატებითი დაცვის მექანიზმი.

- `scope` — string

  OAuth 2.0 ავტორიზაციის სტანდარტული მექანიზმია. კონტექსტი, რომლის ფარგლებში Token-ს აქვს ქმედების უფლება.
