JWT против сессий для масштабируемого API - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю над интерфейсом API (laravel php, но это не должно быть важно), и я думаю о различных методах реализации авторизации.

Этот бэкэнд будет использоваться в первую очередь ReactJS SPA, но должен использоваться с любым клиентом (Android приложение, IOS, умный холодильник и т. д. c ...) для дальнейшего развития.

После поиска по этому Некоторое время назад я наткнулся на несколько методов, в которых я не могу решить, какой из них более подходит для моего случая.

  1. Использование oAuth2: Это не так Кажется, здесь есть способ go, поскольку он (как заявлено на официальном сайте) используется для аутентификации сторонних приложений, и все мои варианты использования в настоящее время являются только первой стороной

  2. Использование сессий: Этот параметр охватывает все мои варианты использования, однако он не так масштабируем, и я подозреваю, что он не так прост при реализации на других не-веб-клиентах (может быть не совсем верно, большинство библиотек Http должно иметь автоматизац * 104 1 * повар ie управление на данный момент).

  3. Использование JWT: Эта опция также охватывает все мои варианты использования и должна быть более простой в реализации для клиентов, так как им просто нужно установить заголовок Authorization. Однако я сталкивался с несколькими источниками, которые предостерегают от использования JWT вместо сессий (например, здесь ). Я не собираюсь хранить данные сеанса внутри JWT, скорее всего, я собираюсь сохранить что-то вроде user_id, user_role и, возможно, session_id, если мне когда-нибудь понадобится.

Мне больше всего нравится опция JWTs, однако я был бы признателен, если бы кто-нибудь смог подсказать мне, какая техника лучше в этом случае.

...