我正在使用dart编写带有auth0身份验证的angular2应用程序。
所以我将以下类注入主应用程序angular2组件:
import 'package:angular2/core.dart';
import 'package:auth0_lock/auth0_lock.dart';
import '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() {
print("####LOGiN####");
this.lock.show(options: {
"callbackURL": configObj.auth0.callbackUrl
},popupMode: true).then(this.updateProfileName).catchError(this.handleError).whenComplete(loginCompleted);
}
handleError(e) {
print(e);
}
loginCompleted() {
print("completed");
}
}
在我的angular2视图中,我调用login()
打开登录弹出窗口。成功或失败登录后,未调用任何未来函数(updateProfileName()
,handleError()
和loginCompleted()
)。
这是我的应用组件代码:
import 'package:angular2/core.dart';
import 'package:angular2/router.dart';
import 'welcome_component.dart';
import 'auth_service.dart';
@Component(
selector: 'my-app',
templateUrl: '/www/my-app.html',
providers: const [Auth]
)
@RouteConfig(const [
const Route(path: '/welcome', component: WelcomeComponent, name: 'welcome')
])
class AppComponent {
Auth auth;
AppComponent(Auth auth) {
this.auth=auth;
}
}
任何想法?