ЕСОЗ - публічна документація

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Specification

Apiary
PATCHmithril/api/users/{user_id}/actions/request_factor
Scopeauthentication_factor:request_factor

Purpose

Collect factor from user,  save factor & type into token, create OTP for approval factor.

Request parameters

  • token
  • user_id
  • factor
  • type


Logic WS

  • Validate token & scope
  • Validate user_id FK
  • Get 2FA item by $.type  for non-blocked user by $.user_id

    SELECT *
    FROM authentication_factors AS 2FA
    	INNER JOIN user AS U
    		ON 2FA.user_id = U.id
    WHERE 
    	U.id = $.user_id
    		AND 2FA.type = $.type
    		AND U.is_active = TRUE
    		AND U.is_blocked = FALSE
    • If  (exist 2FA item for user) AND (token_type = access_token_type) AND (2FA.factor <> "" AND  2FA.factor <> NULL) - update 2FA item (set values) to logical status = ACTIVE :
      • 2FA.factor = new_factor
      • 2FA.update_at = now()
    • If  (exist 2FA item for user) AND (token_type = 2fa_access_token_type) AND (2FA.factor = "" OR  2FA.factor = NULL) - update 2FA item (set values) to logical status = ACTIVE :
      • 2FA.factor = new_factor
      • 2FA.update_at = now()
    • Else return 401 error 
  • Return 200
  • ...

Response

  • 200 if 2FA successful set new.factor  + 2FA_object_view
  • 4xx in other case
  • No labels