Сегодня, после настоящей тренировки, я чувствую, что довольно хорошо понимаю трехстороннюю аутентификацию OAuth. Что я до сих пор не понимаю, так это использование идентификатора пользователя. Все примеры, которые я видел до сих пор, кажутся просто произвольным назначением идентификатора пользователя в верхней части примера сценария и переходом. Это смущает меня.
Большая часть примера кода, который я видел, кажется, сосредоточена вокруг концепции использования идентификатора пользователя и потребительского ключа OAuth-сервера для управления «сеансом» OAuth (в кавычках, потому что я не пытаюсь связать термин с браузер "сеанс"). Например, пример кода базы данных, который я видел, хранит и извлекает токены и другую информацию, связанную с этим, на основе значений полей идентификатора пользователя и ключа потребителя.
Я сейчас нахожусь в состоянии неопределенности, когда несколько конкурирующих фрагментов понимания конкурируют и конфликтуют:
1) Если мое понимание записи сведений о сеансе OAuth или поисков «Хранилище OAuth» правильное, с помощью полей ключа потребителя и идентификатора пользователя, то не требует ли я, чтобы у меня был разрозненный идентификатор пользователя для каждого пользователя, использующего мой приложение, которое соединяется с сервером OAuth?
2) Если # 1 правильно, то как мне избежать создания собственных учетных записей для разных пользователей, чего я пытаюсь избежать? Я пытаюсь написать программное обеспечение, которое выступает в качестве внешнего интерфейса для службы с поддержкой OAuth, поэтому мне не нужно иметь свои собственные пользовательские записи и сопутствующие трудности обслуживания. Вместо этого я просто позволю серверу OAuth справиться с этим концом головоломки. Однако, похоже, из этого следует, что недостатком моего подхода было бы то, что мне пришлось бы повторно авторизовывать пользователя каждый сеанс, так как без моей собственной постоянной учетной записи / идентификатора пользователя я не мог бы искать ранее предоставленный токен доступа «хорошо отозвано», исправить?
3) Что меня беспокоит, так это то, что я читал о некоторых серверах OAuth, которые не позволяют передавать динамически указанный URL-адрес обратного вызова во время запроса неавторизованного токена, что делает невозможным передачу ключа потребителя и идентификатора пользователя обратно себе , Вместо этого вы указываете URL-адрес обратного вызова при регистрации в качестве разработчика / потребителя и все. К счастью, сервер OAuth, с которым я имею дело, разрешает эту функцию, но, тем не менее, если бы я имел дело с тем, который не имел, разве это не бросило бы гигантский гаечный ключ во всю идею использования пары ключ пользователя и идентификатор пользователя? проиндексировать детали сеанса OAuth?