2013-08-02 1 views
0

Я строю приложение, которое работает следующим образом:REST API аутентификации угловыми веб-приложение и Android устройств

как единственный бэкэндом у меня есть REST API (только в формате JSON), построенный с Symfony Framework 2.3.2 + FOSRESTBundle ,

Этот API первоначально будет иметь два клиента:

  • Приложение работает на Android устройств;
  • Веб-приложение, созданное с помощью AngularJS, работающее на том же сервере, что и API.

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

Корпорация также может зарегистрировать ограниченное количество устройств Android, идентифицировав их своим IMEI (международным уникальным идентификационным кодом для мобильных устройств), эти устройства будут использовать свой IMEI для аутентификации в API.

Устройства Android могут работать только с ограниченным набором ресурсов, в то время как пользователи веб-приложений могут получить доступ к тем, что разрешено их ролями.

мне нужно:

  • безопасный и унифицированный способ аутентификации как, пользователи веб-приложений от их электронной почты/пароль и Android устройств их IMEI;
  • Ограничьте ресурсы, к которым они могут получить доступ.

Наблюдения:

  • У меня есть HTTPS на сервере API.

Любая идея о том, как я могу это достичь?

+0

Посмотрите на FOSOAuthServerBundle и используйте различные типы аутентификации OAuth. –

+0

@Pazi Я уже проверил его, но не смог определить подходящие типы грантов для пользователя в моем случае. Не могли бы вы помочь мне? –

ответ

0

Получить FOS User Bundle. В вашей пользовательской сущности вы можете добавить свойство типа, чтобы проверить, какой тип пользователя он (это легко начать). Вы также можете определить разные роли пользователей (стоит проверить). Затем также сделайте недвижимость «IMEI». Теперь у вас объединены учетные записи пользователей.

Для входа в систему с помощью AngularJS вы можете ознакомиться с кодом FOS User Bundle. Посмотрите, как значения «имя пользователя» и «пароль» берутся из формы и обрабатываются пакетом. Затем вы можете использовать этот метод для входа пользователя в свой REST API.

Для пользователей IMEI вы можете выполнить поиск в google на «как войти в систему программно в symfony2». Затем вы можете написать свой собственный код, который проверяет только номер IMEI (без пароля) и журналы пользователя.

+0

У меня уже есть объект устройства (который содержит IMEI) и пользовательский объект разделен. Любая идея, как я могу их использовать? –

+0

Вы можете сделать отношение OneToOne между двумя из них. – Flip