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

Фон

Так что за прошедшую неделю я немного исследовал API и читал о концепциях, а также программировал их.

В настоящее время у меня есть веб-сайт, который запрограммирован на PHP с использованием популярного фреймворка под названием Laravel. На сайте есть база данных пользователей, и пользователи могут войти в панель управления на моем сайте, все работает так, как я хочу, для моего сайта.

Теперь для следующего проекта моего бизнеса я сосредоточен на создании своих мобильных приложений (IOS & Andriod). Что мне нужно для этих мобильных приложений, так это возможность входа через пользовательский интерфейс приложения (без перенаправления на мой сайт с URL обратного вызова), чтобы они могли просматривать и управлять панелью мониторинга.

Метод аутентификации и авторизации, который я хочу использовать для своего приложения, будет выглядеть примерно так:

  • Клиент просит пользователя войти через пользовательский интерфейс
  • Пользователь вводит учетные данные
  • Клиент отправляет запрос на вход в API
  • API проверяет правильность учетных данных
  • API создает токен, который хранится в базе данных токенов, связанной с идентификатором пользователя
  • API возвращает 200 OK с ответом json или что-то вроде этого

{ "token" : "OLS25usJIay81hdy81", "expiry" : 3/06/2016 14:00}

  • Клиент запоминает токен и срок действия
  • Всякий раз, когда пользователь / клиент делает запрос, такой как api/v1/mystuff/orders он отправляет токен с запросом (возможно, через заголовки http?)
  • API проверяет токен, получает идентификатор пользователя и находит заказы пользователей.

Вопросы

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

  • Что я должен использовать для создания API (должен быть PHP и желательно интегрированный laravel)
  • Какие полезные ресурсы помогут мне программировать мой API
  • Есть ли какие-либо предложения / изменения, которые вы бы порекомендовали?

Требования

  • Имя пользователя / пароль аутентификация
  • Авторизация токена
  • Войти через пользовательский интерфейс приложения (не на моем сайте с обратным вызовом)

Заметки

  • Мой сайт имеет сертификат SSL.

1

Решение

Laravel, безусловно, является очень хорошим выбором для создания вашего API, и ваш план аутентификации и авторизации довольно солидный.

Я мог бы рекомендовать вам использовать пакет аутентификации токена JSON для Laravel https://github.com/tymondesigns/jwt-auth

Вы можете увидеть некоторые уроки здесь:

https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

https://www.sitepoint.com/how-to-build-an-api-only-jwt-powered-laravel-app/

Я также рекомендовал бы этот пакет API https://github.com/dingo/api что сэкономит вам много работы.

Если вам нужна помощь, вы можете посмотреть эту серию https://laracasts.com/series/incremental-api-development от Laracast, который требует подписку, но это того стоит.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]