---
# System prepended metadata

title: Flows

---

# Flows

Kullanıcı doğrulama ve destek akış tanımlarını içeririr.

**Tüm akışlar token servisi üzerinden çalışmaktadır.**


Eğer bir Grant için Worklfow tanımlanmışsa o grant direkt çağrılabilir. Eğer workflow tanımı yapılmamışsa ilgili grant bir akışın parça adımı olarak düşünülmeli ve mutlaka **flow_grant** tokenı ile çağrılmalıdır. 

> * Flowlar **Zeebe** üzerinde çalışan iş akışlarıdır. 
> * **/authorize** sayfası ve süreci benzer şekilde token servisi üzerinden geliştirilir.
> * Akış Client ile haberleşmesini **SignalR** ile yapar.
>
 
| Grants               | Factor | WF                    | Grant                                                              | Schema |
| -------------------- | ------ | --------------------- | ------------------------------------------------------------------ | ------ |
| AuthorizationCode    | 2FA    | wf-authorization-code | authorization_code                                                 |        |
| UsernamePassword     | 1FA    | wf-login              | password                                                           |        |
| ResetPassword        |        | wf-reset-password     | http://account.burgan.com.tr/oauth/grant-type/username-phone       |        |
| sms-otp              | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/otp                  |        |
| call-otp             | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/call                 |        |
| device-id            | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/device-id            |        |
| push-approve         | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/push-approve         |        |
| set-password         |        |                       | http://account.burgan.com.tr/oauth/grant-type/set-password         |        |
| security-pin         | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/security-pin         |        |
| set-security-pin     |        |                       | http://account.burgan.com.tr/oauth/grant-type/set-security-pin     |        |
| push-approve         | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/push-approve         |        |
| card-pin             | 1FA    |                       | http://account.burgan.com.tr/oauth/grant-type/card-pin             |        |
| set-security-picture |        |                       | http://account.burgan.com.tr/oauth/grant-type/set-security-picture |        |




## Reset Password Grant için Schema Örneği

Şemalar [JSON Schema](https://json-schema.org) olarak tanımlanır.
Şemaya uygun veriler json formatında token methoduna **data** değişkeni ile **POST** edilitir.


```json
{
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "$id": "http://example.com/example.json",
    "type": "object",
    "default": {},
    "title": "Root Schema",
    "required": [
        "username",
        "gsm-phone"
    ],
    "properties": {
        "username": {
            "type": "integer",
            "default": 0,
            "title": "The username Schema",
            "examples": [
                3856968651
            ]
        },
        "gsm-phone": {
            "type": "integer",
            "default": 0,
            "title": "The gsm-phone Schema",
            "examples": [
                5302896073
            ]
        }
    },
    "examples": [{
        "username": 3856968651,
        "gsm-phone": 5302896073
    }]
}
```


## Authorization Code ile Token Alımı

### Request

```haskell
POST account.burgan.com.tr/token HTTP/1.1          
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code & 
code=SplxlOBeZQQYbYS6WxSbIA &
client_id=burgan_web_ib &
scope=38552069008 &
code_verifier=karatas2323 &
redirect_uri=ebank.burgan.com.tr/token
```

### Response
```haskell
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
 
{
  "access_token":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3....",
  "token_type":"Bearer",
  "expires_in":3600,
  "scope": 38552069008, 
  "refresh_token":"IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk....",
  "identity_token":"asASsadasASDdsadsaSADsaGE3YmNmMDFkNTVk....",
}
```
:::danger
Workflow uzerinden yonetilecegi icin, grant yerine **transitionlar** ile gelistirecegiz.
:::


## UsernamePassword ile Token başlatma

Bu MFA sürecine bir örnek olarak olup şifre değiştirme, ilk şifre alma, müşteri aktivasyonu gibi ek süreçler içinde uygulanabilir akış sunmaktadır.

**1FA**

### Request

```haskell
POST account.burgan.com.tr/token HTTP/1.1          
Content-Type: application/x-www-form-urlencoded

grant_type=password & 
client_id=burgan_web_ib &
username=38552069008
password=1234luggage
scope=38552069008 &
```

### Response
```haskell
HTTP/1.1 403 OK
Content-Type: application/json
Cache-Control: no-store
 
{
  "error": "more_grants_required",
  "error_description": "Multifactor authentication required",
  "flow_token": "Fe26IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVkHa....",
  "available-grants": [
    {
      "grant-type": "http://account.burgan.com.tr/oauth/grant-type/device-id"
    },
    {
      "grant-type": "http://account.burgan.com.tr/oauth/grant-type/push-approve"
    }
  ]
}
```

**2FA**

### Request
```haskell
POST account.burgan.com.tr/token HTTP/1.1          
Content-Type: application/x-www-form-urlencoded

grant_type=http://account.burgan.com.tr/oauth/grant-type/device-id & 
client_id=burgan_web_ib &
code=1234532345435 &
token=Fe26IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVkHa... &
scope=38552069008 
```



### Response
```haskell
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
 
{
  "access_token":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3....",
  "token_type":"Bearer",
  "expires_in":3600,
  "scope": 38552069008, 
  "refresh_token":"IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk....",
  "identity_token":"asASsadasASDdsadsaSADsaGE3YmNmMDFkNTVk....",
}
```

