Какие данные принадлежат токену-носителю при использовании аутентификации токена? - PullRequest
0 голосов
/ 19 октября 2018

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

В настоящее время устройство будет перенаправлено на сервер (через браузер) для входа в систему, которая запрашивает базовое имя пользователя, пароль иCAPTCHA.Я не хотел, чтобы устройство запрашивало имя пользователя и пароль и отправляло данные в сценарий из соображений безопасности.

Устройство также отправляет scope в адресную строку какПОЛУЧИТЕ запрос на тип данных, в которых нуждается устройство.

https://www.example.com/oauth/login
&scope=user.profile,user.messages

При успешном входе пользователя в систему с помощью JQuery magic другая страница загружается внутри этой страницы, запрашивая у них разрешение или запрет областей.

В случае успеха мой JSON Web Token создается следующим образом:

$secret = 'Some derived code unique to that user that authenticated';
$b64    = array('uuid' => 'The users ID', 'scopes' => array('Contains the scopes the user allowed'));

// Some code to store this key into the database cross-referenced to the uuid

http_response_code(200);
die(json_encode(\Firebase\JWT\JWT::encode($b64, $secret))); // or do I send as a header called Bearer?

Затем устройство отправляет этот токен конечной точке сервера ресурсов, которая затем декодирует его, предоставляя мне подтвержденный UUID пользователя и областей действия.отправить обратно.

Однако, это не кажется безопасным.Если кто-то захочет, обязательно измените тело JWT (b64) и исправьте запрошенные области.В настоящее время я нашел решение:

Храните области в базе данных вместе с токеном и uuid.

Однако проблема, с которой я сталкиваюсьс чем мне тогда нужно вставить токен на предъявителя?Какие данные нужно отправить для создания токена?

Я посмотрел на этот вопрос , но в нем не указано, какие данные должны быть зашифрованы в токене-носителе для использования сервером ресурсов..

...