Как получить состояние токена? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь реализовать способ ограничить использование токена только один раз.После первого использования вы не сможете использовать его правильно, пометив токен в его состоянии тегом UsedAlready и Unused, если он еще не использовался.Как мне это сделать в apigee?В настоящее время у меня есть следующее условие, чтобы определить, используется ли токен уже или нет.

 <Step>
    <Condition>(request.queryparam.state NotEquals accesstoken.state)</Condition>
    <Name>RF-TokenAlreadyUsed</Name>
</Step>

Хотя, глядя на мой Tracetool, apigee выдает, что мой accesstoken.state ничего не содержит, почемучто хоть?Мой API-прокси и политика для сохранения состояния по умолчанию при создании токена в любом случае работают нормально.

PS: Я также сделал почти то же самое, но вместо этого использовал несуществующую переменную, используя атрибут, чтобы связать токен сконкретный аккаунт.Но делать то же самое с состоянием с тем, что я делал с атрибутом, не работает.Что я делаю не так, правда? Я правильно использую параметр состояния apigee?Параметр состояния cuz является необязательным параметром, таким как область действия, и я хочу использовать состояние для доступа к токену.

Ответы [ 3 ]

0 голосов
/ 10 июля 2019

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

Даже если вы храните токен в кеше, вы можете установить срок его действия.

Более того, кеш используется для сокращения трафика и повторного использования токена.

Так что я не мог понять вашу цель, вы можете объяснить больше.

0 голосов
/ 11 июля 2019

@ user2462133

Чтобы ответить на ваш вопрос.

Мы хотим, чтобы токен1 был действительным только один раз, а после этого был недействительным для следующего платежа.Но этот токен1 будет использоваться для генерации нового токена2 для повторного доступа к API оплаты, поскольку ранее созданный токен предназначен для привязки учетной записи при первом использовании.Этот новый токен2 будет тогда иметь другое состояние, которое будет действовать только один раз, и после успешной транзакции он не будет снова действительным для другой транзакции, даже если токен еще не истек.Для другого платежа token1 будет вызван снова и проверит, является ли он по-прежнему действительным токеном, и если это так, создайте другой token2 для другого платежа.Но если этот токен1 уже истек.Затем пользователю придется снова привязать свою учетную запись к нашему сервису, войдя в свою учетную запись (например, facebook), выполнив OTP и т. Д. Чтобы получить другой токен1, который затем будет использоваться только один раз для оплаты, но несколько раз дляпроверка того, привязана ли учетная запись к нашему сервису или нет.

0 голосов
/ 03 июля 2019

Оказывается, я неправильно использовал состояние. Состояние должно функционировать так, как указано в этом потоке .

Итак, для того, чтобы я смог сделать то, что я хочу сделать, я должен добавить еще один атрибут к токену, чтобы я мог знать, если токен уже используется или нет. Дело не в том, что я не делал подобную вещь до использования атрибута, скорее я думал, что использование состояния для доступа к токену.

...