使用keycloak和openid_client对flutter应用程序进行身份验证

文件

我正在尝试通过openid_client将我的Flutter应用验证为密钥斗篷

在回购示例之后,我编写了这样的身份验证功能

authenticate() async {

  // parameters here just for the sake of the question
  var uri = Uri.parse('https://keycloak-url/auth/realms/myrealm');
  var clientId = 'my_client_id';
  var scopes = List<String>.of(['openid', 'profile']);
  var port = 4200;
  var redirectUri = Uri.parse('http://localhost:4200');

  var issuer = await Issuer.discover(uri);
  var client = new Client(issuer, clientId);

  urlLauncher(String url) async {
    if (await canLaunch(url)) {
      await launch(url, forceWebView: true);
    } else {
      throw 'Could not launch $url';
    }
  }

  var authenticator = new Authenticator(client,
      scopes: scopes,
      port: port,
      urlLancher: urlLauncher,
      redirectUri: redirectUri);

  var c = await authenticator.authorize();
  closeWebView();

  var token= await c.getTokenResponse();
  print(token);
  return token;
}

当我调用该函数时,会出现一个webview弹出窗口,我可以通过keycloak登录,但是当弹出窗口关闭时,我在处收到此错误c.getTokenResponse()

发生异常。NoSuchMethodError(NoSuchMethodError:对null调用了getter'length'。Receiver:null尝试调用:length)

检查凭证c,我可以看到TokenResponse仅具有“状态”,“ session_state”和“代码”字段

我想念什么?

文件

我已经在github(link上得到了回答,所以我将解决方案复制到这里:


在移动设备上,您应该使用PKCE流。当您在Authenticator构造函数中省略重定向uri时,将自动选择此选项。

因此,应为:

var authenticator = new Authenticator(client,
      scopes: scopes,
      port: port,
      urlLancher: urlLauncher,);

确保将uri http://localhost:4200/(包括斜杠)添加到Valid Redirect URIs密钥斗篷中。

图片

确保将uri http:// localhost:4200 /(包括尾部斜杠)添加到密钥斗篷中的有效重定向URI中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否允许使用client_id进行身份验证的Javascript Instagram应用程序?

来自分类Dev

使用OAuth对EWS应用程序进行身份验证

来自分类Dev

使用 Ionic 应用程序进行 API 身份验证

来自分类Dev

OpenID Connect-使用JWT通过REST API进行身份验证的Javascript应用程序的隐式流程

来自分类Dev

哪些OpenID Connect授权流程可对移动应用程序用户进行身份验证?

来自分类Dev

对单个操作而非整个应用程序使用Windows身份验证进行身份验证

来自分类Dev

使用用户名和密码从WPF应用程序进行GitHub身份验证

来自分类Dev

Azure移动应用程序和Xamarin表单:在后台使用Facebook进行身份验证

来自分类Dev

如何获取和使用适当的signingKey进行Azure移动应用程序身份验证?

来自分类Dev

同一应用程序上的AAD OpenId和承载身份验证

来自分类Dev

使用Windows身份验证和Web应用程序的IIS与Web应用程序

来自分类Dev

如何使用oidc和Azure应用程序配置kubernetes以仅允许使用指定的安全组进行身份验证

来自分类Dev

需要使用Web应用程序和Web API进行双重身份验证吗?

来自分类Dev

使用Devise进行Rails应用程序本地和远程身份验证(两种策略)

来自分类Dev

使用Angular.js和iOS客户端对Node.js应用程序进行身份验证

来自分类Dev

在Google表格应用程序中进行身份验证

来自分类Dev

通过Android应用程序进行Facebook身份验证

来自分类Dev

嵌入式Flutter应用程序和本机Android中的Firebase身份验证

来自分类Dev

适用于同时登录多个应用程序的AppEngine的OpenID Connect和移动身份验证选项

来自分类Dev

在闪亮的应用程序和多个页面中进行身份验证

来自分类Dev

配置Ping Federate和Spring SAML对应用程序进行身份验证

来自分类Dev

在Android应用程序中进行身份验证和授权的最佳做法

来自分类Dev

如何在本机应用程序(Android / iOS)中对用户进行身份验证和记住?

来自分类Dev

在同一MVC应用程序中同时使用OWIN Cookie身份验证和Windows身份验证

来自分类Dev

如何在 OWIN 应用程序中使用 cookie 身份验证和 WsFederation 身份验证

来自分类Dev

用户和应用程序的REST API身份验证

来自分类Dev

Web应用程序和请求身份验证

来自分类Dev

使用mod_auth_openidc对自定义Web应用程序进行身份验证

来自分类Dev

使用Active Directory进行身份验证的外部Rails / Node应用程序/ SSO

Related 相关文章

  1. 1

    是否允许使用client_id进行身份验证的Javascript Instagram应用程序?

  2. 2

    使用OAuth对EWS应用程序进行身份验证

  3. 3

    使用 Ionic 应用程序进行 API 身份验证

  4. 4

    OpenID Connect-使用JWT通过REST API进行身份验证的Javascript应用程序的隐式流程

  5. 5

    哪些OpenID Connect授权流程可对移动应用程序用户进行身份验证?

  6. 6

    对单个操作而非整个应用程序使用Windows身份验证进行身份验证

  7. 7

    使用用户名和密码从WPF应用程序进行GitHub身份验证

  8. 8

    Azure移动应用程序和Xamarin表单:在后台使用Facebook进行身份验证

  9. 9

    如何获取和使用适当的signingKey进行Azure移动应用程序身份验证?

  10. 10

    同一应用程序上的AAD OpenId和承载身份验证

  11. 11

    使用Windows身份验证和Web应用程序的IIS与Web应用程序

  12. 12

    如何使用oidc和Azure应用程序配置kubernetes以仅允许使用指定的安全组进行身份验证

  13. 13

    需要使用Web应用程序和Web API进行双重身份验证吗?

  14. 14

    使用Devise进行Rails应用程序本地和远程身份验证(两种策略)

  15. 15

    使用Angular.js和iOS客户端对Node.js应用程序进行身份验证

  16. 16

    在Google表格应用程序中进行身份验证

  17. 17

    通过Android应用程序进行Facebook身份验证

  18. 18

    嵌入式Flutter应用程序和本机Android中的Firebase身份验证

  19. 19

    适用于同时登录多个应用程序的AppEngine的OpenID Connect和移动身份验证选项

  20. 20

    在闪亮的应用程序和多个页面中进行身份验证

  21. 21

    配置Ping Federate和Spring SAML对应用程序进行身份验证

  22. 22

    在Android应用程序中进行身份验证和授权的最佳做法

  23. 23

    如何在本机应用程序(Android / iOS)中对用户进行身份验证和记住?

  24. 24

    在同一MVC应用程序中同时使用OWIN Cookie身份验证和Windows身份验证

  25. 25

    如何在 OWIN 应用程序中使用 cookie 身份验证和 WsFederation 身份验证

  26. 26

    用户和应用程序的REST API身份验证

  27. 27

    Web应用程序和请求身份验证

  28. 28

    使用mod_auth_openidc对自定义Web应用程序进行身份验证

  29. 29

    使用Active Directory进行身份验证的外部Rails / Node应用程序/ SSO

热门标签

归档