2015-06-10 2 views
0

Я разработал веб-сайт на PHP (zend framework 2). Он имеет аутентификацию пользователя для доступа к пользовательскому контенту и представлениям, доступ к которым пользователь получает только от пользователя. Теперь я хочу создать мобильное приложение с таким же функционалом, как это. Поэтому я создал веб-службу для доступа ко всем требуемым методам для доступа к данным. Теперь я должен аутентифицировать пользователя из мобильного приложения. Поэтому пользователь должен иметь возможность войти в систему один раз, используя свои учетные данные на мобильных устройствах, и он должен иметь доступ к его контенту.Аутентификация входа в мобильное приложение с использованием webservice с использованием oauth-соединения

Моя идея заключается в том, что после аутентификации пользователя последующие вызовы API должны взаимодействовать с веб-службой, используя токен, предоставляемый веб-службой. У меня есть основное понимание oAuth. Поэтому мой план заключается в создании сервера oAuth в моем приложении, который предоставляет секретный ключ для моего приложения. Приложение подключается с использованием секретной информации и получает токен при аутентификации. Приложение использует этот токен для дальнейших вызовов API.

Теперь мои вопросы

  1. Могу ли я с помощью OAuth правильно или разве это OAuth для.
  2. Есть ли какая-то лучшая реализация, чем эта.
  3. Я искал подобные импликации, но все, что я нашел, когда пытался использовать ключевое слово oAuth, - это аутентификация Google.
  4. Каковы альтернативы аутентификации пользователя из мобильного приложения с учетными данными, которые у нас есть в базе данных.

ответ

1

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

1-й прочитанный вопрос и ответ, чтобы получить общее представление о том, как это должно быть сделано.

How to implement 'Token Based Authentication' securely for accessing the website's resources(i.e. functions and data) that is developed in PHPFox?

Тогда читайте this post, чтобы понять идею о JWT.

Теперь давайте посмотрим, как вы можете реализовать его JWT в своем приложении.Для этого читайте this post. Игнорируйте материал NodeJS/Angular. Вместо этого подумайте о них как о своем сервере приложений. Постарайтесь понять обоснование этого.

Я предоставил вам URL-адреса, так как я не хочу повторять здесь, что уже есть в Интернете, но я дал вам путь для решения вашей проблемы в лучшем виде. Пожалуйста, дайте мне знать, если вам понадобятся будущие разъяснения по этому поводу.

0

Использование PHP в порядке, однако я бы использовал SharedPreferences, если вы хотите, чтобы пользователь входил в систему один раз, а затем оставил свой сеанс открытым для будущего доступа к приложению. Вы можете предоставить каждому пользователю доступ к различным фрагментам на основе учетных данных, которые он/она имеет, и каждый пользователь получит данные обрезания в своем приложении.

Чтобы помочь вам в аутентификации приложения, this руководство очень полезно. Дайте мне знать, если вам нужна дальнейшая помощь :)

1

да, это хороший случай для OAuth токены доступа.
Однако я сделаю еще один шаг и предлагаю использовать в качестве ключей API JWT (JSON Web Tokens). Веб-маркеры JSON являются самонастраивающимися, с цифровой подписью и содержат свойства для зарегистрированного пользователя. Это означает, что вам не нужно вызывать данные пользователя в центральном хранилище при каждом запросе API.
Есть множество библиотек для маркеров подписания/проверки http://jwt.io/#libraries
В вашем случае вам нужно будет только два из них: для PHP и Java
Вот некоторые дополнительные чтения, если вы заинтересованы в JWT
https://auth0.com/blog/2014/12/02/using-json-web-tokens-as-api-keys/ http://www.toptal.com/web/cookie-free-authentication-with-json-web-tokens-an-example-in-laravel-and-angularjs

Смежные вопросы