Я проводил много времени, исследуя, как наилучшим образом реализовать аутентификацию пользователя из приложения Android на веб-сервере Rails. Я знаю, что есть механизмы, доступные для проверки подлинности на стороне Rails для меня, но то, что мне нужно, не очень сложно, и поэтому я думаю, что лучше всего написать собственный код аутентификации.Аутентификация для файла cookie или RESTful Key?
Я очень заинтересован в веб-сервисах RESTful: на веб-сервере без гражданства код гораздо читабельнее, сопровождается и изменен, чтобы назвать несколько преимуществ. Как студент колледжа, работающий независимо от этой реализации, эти вещи для меня не очень важны, но я считаю, что руководство, ориентированное на REST, было бы идеальным с точки зрения кодирования тем не менее.
Поскольку для моего приложения требуются учетные записи пользователей, которые поддерживают свои собственные контексты, пользователям необходимо пройти аутентификацию при обращении к веб-серверу. Если бы я должен был реализовать это приложение полностью RESTful, я бы не занимался сессиями, и вместо этого требовал, чтобы приложение Android (клиентская сторона) передало учетные данные текущего пользователя (вероятно, единственный уникальный ключ, возвращаемый в приложение Android с веб-сервера при первом входе в систему) по каждому запросу. Это было бы приемлемым подходом, но я беспокоюсь о вычислительных издержках, которые могут возникнуть на стороне сервера.
Вот почему:
Глядя пользователь по длинной строке на каждый запросе для того, чтобы действовать на этом пользователь будет медленнее, чем иметь целочисленный идентификатор пользователя для соответствующей строки таблицы в Сеанс CookieStore.
Я, вероятно, не буду хранить аутентификацию RESTful ключ в виде простого текста в базе данных. Я бы, вероятно, использовал BCrypt и вместо этого сохранил соль и хэш для ключа. Это, конечно, приводит к вычислительным накладным расходам, которые эта пуля адресует: используя BCrypt для хеширования полученного ключа для каждого запроса для проверки хеша, хранящегося в базе данных.
Когда я в конце концов, требуется хостинг для сервера производства, я действительно не могу позволить себе платить за зверь, просто так, что я могу щеголять REST значок.
Предполагая, что типичный пользователь составляет 10-30 запросов в день, а количество пользователей зависит от популярности приложения (чего я не могу предсказать, но ради этого вопроса предположим, что он является средним), возможно ли реализовать аутентификацию RESTfully в моем конкретном случае? Другими словами, это вычислительные накладные расходы, которые он может создать, чтобы существенно увеличить требования к оборудованию для сервера?
Thanks