当前位置: 首页 > 知识库问答 >
问题:

Alexa帐户链接-如果链接的访问令牌过期怎么办?我正在使用隐式赠款流

和和裕
2023-03-14

​我正在尝试使用alexa帐户链接的隐式授权流。我的访问令牌仅在一年内有效。

  1. 如何要求用户再次登录以获取新的访问令牌
  2. 我可以与Amazon共享刷新令牌而不是访问令牌吗

共有2个答案

督建柏
2023-03-14

如果您使用隐式授权,则没有刷新令牌。当令牌过期时,您应该做的是将显示卡重定向到授权服务器

诸葛雨泽
2023-03-14

在API中检查访问令牌是否仍然有效。如果没有,则发送帐户链接卡,并告诉用户需要检查Alexa应用程序以重新链接帐户。以下是如何使用Alexa Skills Kit SDK for 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.

        // ...

    }
  }
}; 

https://developer.amazon.com/en-US/docs/alexa/custom-skills/include-a-card-in-your-skills-response.html#define-a-card-for-use-with-account-linking

用户现在需要重新链接帐户并获取新的访问令牌。

如果需要刷新令牌,请使用授权码授权,而不是隐式授权。

希望这有帮助!

 类似资料:
  • 我有点困惑,如何设置Cognito作为在Alexa帐户链接提供商。到目前为止,在阿列克谢,我有以下: 授权URL: 这由该endpoint的文档进行备份。然后,我认为访问令牌URI如下所示: 该endpoint也在文档中。但这不起作用,而且我还对Amazon如何将代码从authendpoint传递到令牌endpoint感到困惑。我见过人们使用: 这是与帐户链接的重定向URI。在Alexa应用程序和

  • 我试图在我的技能中使用帐户链接。问题是文档不够清晰。我有一个登录屏幕,它重定向到URL参数中提供的amazon重定向uri,我还包括代码(顺便说一句,我使用的是Auth code Grant),问题来了。我的脚本获取代码和客户端凭据并生成两个令牌,但是它应该如何处理它们呢?他们的系统是否等待json响应或包含两个令牌(使用它们的名称作为键)的东西,或者我是否应该再次重定向?他们在文档中说服务器应该

  • 我试图建立一个alexa技能,这将有facebook登录作为一个帐户链接提供商。我已经建立了它的开发版本,正在使用我自己的帐户。现在我正在考虑提交Facebook的应用程序进行审查,这样我就可以公开我的应用程序,并发布alexa技能。 我遇到的第一个可能是,我需要在FB应用程序中指定平台。最接近我的用例的可能是网站。但是要在字段中放置什么url。我的技能网址? 另一件事是,我想让用户的好友列表,使

  • 我正在创建一个帐户链接Alexa技能。我得到了链接授权码并将其交换为访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到一个信息:“无效的帐户链接凭据”。 要怎么做?

  • 我的技能需要帐户链接,它将通过OAuth 2.0协议使用AWS cognito用户池对客户进行身份验证。我可以在用户池中指定刷新令牌的TTL,我决定将其有效期设置为60天。 据我所知,alexa将访问令牌与您的技能收到的每个请求一起发送给您,以便您能够识别使用该技能的客户。如果他们的访问令牌过期,alexa将通过在将带有访问令牌的请求转发给您之前刷新他们的令牌来处理此问题。因此,您可以拥有有效的访

  • alexa skill不会将请求中的“客户端机密”发送到令牌endpoint,这会导致我的OAuth服务器中的帐户链接失败。请求正文包含:{'grant_type':'authorization_code','code':'*******','redirect_uri':'https://pitangui.amazon.com/api/skill/***“,”客户id:“******”}