Как использовать HTTP-аутентификацию в устройстве с дополнительным токеном omniauth в качестве токена аутентификации

У нас есть настройка приложения rails, которая использует devise & omniauth, чтобы разрешить вход через аутентификацию facebook. У нас также есть мобильное приложение, которое в настоящее время использует HTTP-аутентификацию для входа в приложение rails либо путем передачи имени пользователя и пароля, либо путем передачи токена аутентификации http. Все это пока отлично работает.

Мобильное приложение также имеет возможность аутентифицироваться с помощью самого facebook и получать токен facebook пользователя непосредственно между собой и facebook.

Я хотел бы восполнить этот пробел, чтобы, если у пользователя есть вошли в систему из мобильного приложения через facebook и имеют свой токен facebook, что позволяет использовать этот токен facebook в качестве аутентификации в приложении rails, как если бы они получили его из facebook через браузер.

Конечным результатом будет то, что мобильное приложение может войти в систему через:

1) имя пользователя / пароль или же 2) токен аутентификации http или же 3) токен omniauth (facebook)

Кроме того, в случае 3), если пользователь еще не существует в приложении rails, потребуется создать пользователя - делая это уже с аутентификацией на стороне браузера, поэтому может больше нечего делать.

Как мне лучше всего добиться этого в конструкции devise?

7
задан Streamline 29 August 2011 в 15:50
поделиться