Мне нужно включить двухэтапную аутентификацию для входа моих пользователей, в настоящее время у меня только логин на основе пароля. Ниже приведены 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"
}
Это правильный метод или есть другой лучший или есть какие-то простые шаги?