как включить проверку OTP вместе с потоком oauth2 - PullRequest
1 голос
/ 27 февраля 2020

Мне нужно включить двухэтапную аутентификацию для входа моих пользователей, в настоящее время у меня только логин на основе пароля. Ниже приведены API-интерфейсы, которые я планирую добавить для двухэтапной проверки

1- API входа пользователя

POST /oauth/login 
Content-Type: application/json
{
     grant_type: 'password',
     username: 'USERNAME',
     password: 'PASSWORD',
     audience: 'API_IDENTIFIER',
     scope: 'SCOPE',
     client_id: 'YOUR_CLIENT_ID',
     client_secret: 'YOUR_CLIENT_SECRET'
}

2- Ответ Я планирую с моего сервера, если этот пользователь также нуждается в аутентификации на основе OTP ( Серверная часть сервера отправляет OTP на мобильный телефон.

HTTP/1.1 403 Forbidden
Content-Type: application/json
{
  "error": "otp_required",
  "error_description": "Multi-factor authentication required",
  "otp_token": "eyJ0eXAiOiJKV1QiLCJhbGciD3QCiQ",
  "otpidentifier":"7789346789"  // this is where otp is sent
}

3. Пользователь запускает этот API после того, как он получает OTP вместе с отправленным временным токеном.

POST /outh/otp/verify 
Content-Type: application/json
Authorizatuin:{otp_token} // eyJ0eXAiOiJKV1QiLCJhbGciD3QCiQ
{
     grant_type: 'otp',
     otp: '123456',
     client_id: 'YOUR_CLIENT_ID',
     client_secret: 'YOUR_CLIENT_SECRET'
}

4. Окончательный ответ моего Сервера с правильным токеном доступа oauth.

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
  "token_type":"bearer",
  "expires_in":3600,
  "refresh_token":"IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk",
  "scope":"create"
}

Это правильный метод или есть другой лучший или есть какие-то простые шаги?

...