首页 > 解决方案 > 如何在 WebApi 2 中登录 Alexa Linked Account?

问题描述

我需要在我的 Alexa Skills 中将我的网站作为链接帐户连接,我还没有登录我的网站,它向以下 API 发出请求并在 cookie 中设置 JWT 令牌,如下所示:

   <HttpPost()>
    <Route("login")>
    Public Function GetLogin(data As Utenti.Login)
        If data.username = "" Or data.password = "" Then
            Return Nothing
        End If

        Dim utenti As Utenti = New Utenti
        Return utenti.UserExists(data.username, data.password)

    End Function

我如何重用该 API 将我的网站帐户链接到 Alexa Skills,因为当 Alexa 向我的网站 API 发出请求以请求一些数据时,我必须从 JWT 令牌中检索一些声明?

我还没有尝试过这样的链接:

在我的 Alexa 应用程序中,该网站实际上已打开,但是当我登录时,它只是在网站内部登录,而没有将其链接到 Alexa

在此处输入图像描述

标签: asp.net-web-api2alexaalexa-skills-kit

解决方案


您的解释不清楚,但您提到的 cookie 让您看起来好像走错了路。您需要 OAuth2 授权流程。

如果我登录亚马逊(身份验证),我填写我的登录名和密码,他们确认,设置一个 cookie,然后我可以访问该网站,以我的身份登录。

如果我使用 Login WITH Amazon(授权),我会在浏览器、webView 或 inAppBrowser 中转到一个向 Amazon 的 OAuth 服务器发送特殊请求的站点/应用程序和我。如果我没有 cookie,亚马逊可能会让我登录(确保是我),然后说“你想授予这个网站/应用程序代表你访问这些特定功能和数据的权限吗?” 如果我说是,亚马逊会将我重定向回站点/应用程序,并在返回给我时在 URL 中放置一个短期访问令牌(隐式授予)或代码(授权授予)。

然后,站点/应用程序使用访问令牌(或使用代码获取可更新的访问令牌)来访问我授予它使用权限的特定 Amazon API。

因此,如果您要访问您的站点,登录,设置 cookie,仅此而已……这不是帐户链接的正确过程。

https://developer.amazon.com/en-US/docs/alexa/account-linking/account-linking-concepts.html


推荐阅读