dart - 使用 js.dart 公开 auth0 API

标签 dart auth0

我正在编写一个 Dart Angular2 应用程序,但它与手头的问题无关。

我正在尝试通过使用 1https://pub.dartlang.org/packages/js 公开它的 API 来将 Auth0Lock 与 dart 一起使用。

我正在使用 Dartium 调试应用程序。

所以我使用以下 auth0lock.dart 文件公开 Auth0Lock API:

import 'package:js/js.dart';

@JS()
class Auth0Lock {
 external factory Auth0Lock(String token, String domain, Object options);
  external on(String event, Function func);
  external show();
}

我只公开了我需要的基本内容。

然后我在名为 auth0_service.dart 的文件中创建了一个 Angular2 服务,该文件具有以下代码:

导入'package:angular2/core.dart'; 导入“auth0lock.dart”; 导入 'app.config.dart';

@Injectable()
class Auth {
Auth0Lock lock;

Auth() {
    this.lock = new Auth0Lock(configObj.auth0.apiKey, configObj.auth0.domain,{});
}
updateProfileName(data) {
  var profile = data['profile'] != null ? data['profile'] : data;
  print(profile['name']);
}

authenticated() {
  return false;
}

login() {
    this.lock.show().then(this.updateProfileName);
}


}

我还将在加载 auth0 的位置显示我的 index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Demo App</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="www/styles.css">
    <script src="https://cdn.auth0.com/js/lock/10.0.0/lock.min.js"></script>
    <script defer src="/web/main.dart" type="application/dart"></script>
    <script defer src="/packages/browser/dart.js"></script>
</head>
<body>
    <my-app></my-app>
</body>
</html>

当我运行我的应用程序时,出现以下错误:

EXCEPTION: No static method 'Auth0Lock.' declared in class 'Auth0Lock'.

所以 Auth0Lock 不是静态方法,它是类的构造函数。所以我必须以某种方式错误地使用 JS api。

最佳答案

我需要在 auth0lock.dart 前面添加以下内容:

@JS()
library test;

实际上,我可以将 test 重命名为我想要的任何名称...我只需要添加 js 标记和带有名称的库。就解决了。

关于dart - 使用 js.dart 公开 auth0 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949551/

相关文章:

ruby-on-rails - Angular2 - 使用 auth0 或 rails 进行身份验证?

java - 从 auth0 仪表板中删除用户时是否有任何 Hook 或回调?

jwt - 如何从 Auth0 托管登录获取 JWT

ios - 检查 Auth0 idToken 是否过期

flutter - 我无法在Liquidswipe中实现Connectivityresult

flutter - Flutter 中如何检查输入是否是电子邮件地址?

function - Flutter:如何从另一个类调用方法?

dart - 在 Debian 中安装 Dart 编辑器

dart - Flutter gRPC 错误 - 操作系统错误 : Connection refused

auth0 - 如何使用 Cypress 和 Auth0 测试单页应用程序