Я работаю над интерфейсом API (laravel php, но это не должно быть важно), и я думаю о различных методах реализации авторизации.
Этот бэкэнд будет использоваться в первую очередь ReactJS SPA, но должен использоваться с любым клиентом (Android приложение, IOS, умный холодильник и т. д. c ...) для дальнейшего развития.
После поиска по этому Некоторое время назад я наткнулся на несколько методов, в которых я не могу решить, какой из них более подходит для моего случая.
Использование oAuth2: Это не так Кажется, здесь есть способ go, поскольку он (как заявлено на официальном сайте) используется для аутентификации сторонних приложений, и все мои варианты использования в настоящее время являются только первой стороной
Использование сессий: Этот параметр охватывает все мои варианты использования, однако он не так масштабируем, и я подозреваю, что он не так прост при реализации на других не-веб-клиентах (может быть не совсем верно, большинство библиотек Http должно иметь автоматизац * 104 1 * повар ie управление на данный момент).
Использование JWT: Эта опция также охватывает все мои варианты использования и должна быть более простой в реализации для клиентов, так как им просто нужно установить заголовок Authorization
. Однако я сталкивался с несколькими источниками, которые предостерегают от использования JWT вместо сессий (например, здесь ). Я не собираюсь хранить данные сеанса внутри JWT, скорее всего, я собираюсь сохранить что-то вроде user_id
, user_role
и, возможно, session_id
, если мне когда-нибудь понадобится.
Мне больше всего нравится опция JWTs, однако я был бы признателен, если бы кто-нибудь смог подсказать мне, какая техника лучше в этом случае.