Я пытаюсь использовать неявный поток грантов для привязки учетной записи alexa. Мой токен доступа действителен только в течение одного года.
В вашем API проверьте, действителен ли токен доступа. Если это не так, отправьте карту привязки учетной записи и сообщите пользователю, что ему нужно проверить свое приложение Alexa, чтобы повторно привязать свою учетную запись. Вот как вы отправляете карту привязки учетной записи с помощью SDK Alexa Skills Kit для Node.js (v2) (см. Вызов withLinkAccountCard ()):
const OrderCarIntentHandler = {
// ...
handle(handlerInput){
// This intent requires an access token so that we can get the user's
// Ride Hailer user profile with payment information.
// The access token is in the Context object. Access the
// request in the HandlerInput object passed to the
// handler.
var accessToken = handlerInput.requestEnvelope.context.System.user.accessToken;
if (accessToken == undefined){
// The request did not include a token, so tell the user to link
// accounts and return a LinkAccount card
var speechText = "You must have a Ride Hailer account to order a car. " +
"Please use the Alexa app to link your Amazon account " +
"with your Ride Hailer Account.";
return handlerInput.responseBuilder
.speak(speechText)
.withLinkAccountCard()
.getResponse();
} else {
// Use the token to access the user's profile. This should also verify that the
// token represents a valid Ride Hailer user.
// ...
}
}
};
Теперь пользователю необходимо повторно связать учетную запись и получить новый токен доступа.
Если вам нужен токен обновления, используйте грант кода авторизации вместо неявного предоставления.
Надеюсь это поможет!
Если вы используете неявное предоставление, токена обновления нет. Что вы собираетесь делать, когда истечет срок действия токена, отобразите карту для перенаправления на ваш сервер авторизации.
Вы нашли ответ?