Я использовал this tutorial для реализации REST api для приложения Yii. Он работает хорошо, но мне нужен совет по части аутентификации. В учебнике есть метод аутентификации, который получает имя пользователя и пароль (не зашифрованные) на 2 заголовках, и в соответствии с учебным пособием я могу использовать тот же метод для проверки пользовательских данных при каждом вызове API.yii Rest api Аутентификация Приложение iOS
Это код метода аутентификации
private function _checkAuth()
{
// Check if we have the USERNAME and PASSWORD HTTP headers set?
if(!(isset($_SERVER['HTTP_X_USERNAME']) and isset($_SERVER['HTTP_X_PASSWORD']))) {
// Error: Unauthorized
$this->_sendResponse(401);
}
$username = $_SERVER['HTTP_X_USERNAME'];
$password = $_SERVER['HTTP_X_PASSWORD'];
// Find the user
$user=User::model()->find('LOWER(username)=?',array(strtolower($username)));
if($user===null) {
// Error: Unauthorized
$this->_sendResponse(401, 'Error: User Name is invalid');
} else if(!$user->validatePassword($password)) {
// Error: Unauthorized
$this->_sendResponse(401, 'Error: User Password is invalid');
}
}
Так что у меня следующие вопросы:
1- ли это небезопасно использовать этот метод, учитывая тот факт, что я посылаю пароль и имя пользователя в незашифрованном виде ?
2- Должен ли я рассмотреть возможность внедрения Oauth2 для этого? Этот API имеет только 2 метода, которые я буду использовать прямо сейчас, поэтому я не хотел бы тратить много времени на дополнительный протокол авторизации, если это не является абсолютно необходимым.
Любая помощь очень ценится.
Благодаря
Хорошо, спасибо за то, что нашли время, какие-либо советы о том, как перейти на https? – Andrespch
Это не тривиально - вам нужно получить сертификат и настроить сервер соответствующим образом. Возможно, вам захочется поговорить с вашим хостинг-провайдером или администратором сервера – NSPekka