Я знаю, что есть много информации об этой теме, но я не могу найти что-то актуальное.
Я вижу такие темы, как этот, относящийся к рельсам и андроидной аутентификации, но я вижу, что TokenAuthenticatable
теперь удаляется из приложения.
Мой вопрос прост: есть ли хороший способ аутентифицировать пользователей из родных приложений для Android и iPhone с помощью Rails 4? Кто-нибудь знает хорошие учебники или статьи, которые предоставляют решение?
Адам Уайт Добавляет награду:
Я только что открыл 500 бонусов по этому вопросу, потому что я не могу найти правильную практику для аутентификации пользователя из приложения iOS в Rails API в любом месте. Это то, что я рассматривал, но понятия не имею, безопасно это или нет?!:
Предположим, что у нас есть запись User
. Пользователь зарегистрировался для учетной записи, которая создала запись User
в базе данных с столбцом email
и столбцом password_digest
.
Когда пользователь подписывается, я хотел бы, чтобы этот пользователь оставался аутентифицированным в мобильном приложении до явного подписания.
Я предполагаю, что нам понадобится аутентификация на основе токенов. Я бы, возможно, создал запись ApiKey при создании User
и сохранил ее как ассоциацию в записи User
.
Когда пользователь подписывается в/вверх, ответ будет содержать токен API (что-то вроде SecureRandom.hex
), которое будет сохранено в iOS Keychain и использовано со всеми последующими запросами, чтобы проверить пользователя, передав его в заголовке и проверяя это, используя что-то вроде:
before_filter :restrict_access
private
def restrict_access
authenticate_or_request_with_http_token do |token, options|
ApiKey.exists?(access_token: token)
end
Это безопасно? Должен ли я обновлять токен с каждым запросом и включать его в ответ?
Какие еще варианты у меня есть? Что делают Facebook, Twitter и Pinterest?
Я знаю OAuth2.0, но разве это не для предоставления внешних приложений?
Есть ли камень, который управляет этим?
Извините, совершенно не уверен здесь.
500 к лучшему ответу.