auth0 在flutter环境中返回一个短的AccessToken

Posted

技术标签:

【中文标题】auth0 在flutter环境中返回一个短的AccessToken【英文标题】:auth0 returns a short AccessToken in the flutter environment 【发布时间】:2020-11-06 16:22:01 【问题描述】:

我已参考以下文章将 auth0 身份验证合并到我的 Flutter 应用中。https://auth0.com/blog/get-started-with-flutter-authentication/

通过此设置,可以获取谷歌用户信息等。 但是,当我使用登录后获得的 AccessToken 访问我的 API 服务器时,出现 401 错误。

看AccessToken,它是一个很短的,不是一个完整的token。

看下面的文章,据说你应该指定你的 API Server 的“受众”。 但我不知道如何指定“受众”。https://community.auth0.com/t/access-token-too-short-jwt-malformed/9169/7

final AuthorizationTokenResponse result =
          await appAuth.authorizeAndExchangeCode(
  AuthorizationTokenRequest(
    AUTH0_CLIENT_ID,
    AUTH0_REDIRECT_URI,                // How do you specify 'audience'?
    issuer: 'https://$AUTH0_DOMAIN',
    scopes: ['openid', 'profile', 'offline_access'],
  ),
);

请告诉我如何获取完整的 AccessToken。 谢谢!

【问题讨论】:

【参考方案1】:

可以使用additionalParameters 键包含观众参数:

      final AuthorizationTokenResponse result =
          await appAuth.authorizeAndExchangeCode(
        AuthorizationTokenRequest(
          AUTH0_CLIENT_ID, AUTH0_REDIRECT_URI,
          issuer: 'https://$AUTH0_DOMAIN',
          additionalParameters: 'audience': AUTH0_AUDIENCE ,
          scopes: ['openid', 'email', 'profile', 'offline_access'],
          //promptValues: ['login'],
        );

如您在上面链接的文档中所述,这将导致 Auth0 返回 JWT access_token 而不仅仅是一个短令牌。

https://auth0.com/blog/get-started-with-flutter-authentication/ 上的 cmets 向 arch​18 致敬

【讨论】:

以上是关于auth0 在flutter环境中返回一个短的AccessToken的主要内容,如果未能解决你的问题,请参考以下文章

Auth0 管理 API CreateAsync 返回内部服务器错误 (500)

Auth0 Swift SDK .authentication().login 返回无效令牌

Auth0 SSO Angular 返回 WebpackOk

Auth0 /authorize 端点不返回 JWT

Appsync oidc 与 auth0 作为授权返回未经授权

请求 Auth0-Authorization 扩展中的组列表但返回 403:Insufficient 范围错误