gpt4 book ai didi

javascript - Angular 2 - Auth0

转载 作者:行者123 更新时间:2023-11-30 11:51:36 25 4
gpt4 key购买 nike

我正在尝试实现从 Auth0 登录和注册。我按照 Auth0 网站上的这些步骤操作:

https://auth0.com/docs/quickstart/spa/angular2/01-login

我正在使用 Angular 2 RC5

这是我的文件的样子:

app.component.html

 <div class="navbar-header">
<a class="navbar-brand" href="#">Auth0 - Angular 2</a>
<button class="btn btn-primary btn-margin" (click)="auth.login()" *ngIf="!auth.authenticated()">Log In</button>
<button class="btn btn-primary btn-margin" (click)="auth.logout()" *ngIf="auth.authenticated()">Log Out</button>
</div>

应用程序组件.ts

从'@angular/core'导入{组件};从“./auth.service”导入{Auth};

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
constructor(private auth: Auth) {}
}

auth.service.ts

import { Injectable }      from '@angular/core';
import { tokenNotExpired } from 'angular2-jwt';

// Avoid name not found warnings
declare var Auth0Lock: any;

@Injectable()
export class Auth {
// Configure Auth0
lock = new Auth0Lock('MY_CLIENT_ID', 'MY_DOMAIN.auth0.com', {});

constructor() {
// Add callback for lock `authenticated` event
this.lock.on("authenticated", (authResult) => {
localStorage.setItem('id_token', authResult.idToken);
});
}

public login() {
// Call the show method to display the widget.
this.lock.show();
};

public authenticated() {
// Check if there's an unexpired JWT
// This searches for an item in localStorage with key == 'id_token'
return tokenNotExpired();
};

public logout() {
// Remove token from localStorage
localStorage.removeItem('id_token');
};
}

但是我在我的 Chrome 开发者 JavaScript 控制台中收到了这些错误:

EXCEPTION: Error in ./AppComponent class AppComponent_Host - inline template:0:0
EXCEPTION: Error in ./AppComponent class AppComponent_Host - inline template:0:0
ORIGINAL EXCEPTION: No provider for Auth!
ORIGINAL STACKTRACE:
Error: DI Exception
at NoProviderError.BaseException [as constructor] (exceptions.js:27)
at NoProviderError.AbstractProviderError [as constructor] (reflective_exceptions.js:43)
at new NoProviderError (reflective_exceptions.js:80)
at ReflectiveInjector_._throwOrNull (reflective_injector.js:786)
at ReflectiveInjector_._getByKeyDefault (reflective_injector.js:814)
at ReflectiveInjector_._getByKey (reflective_injector.js:777)
at ReflectiveInjector_.get (reflective_injector.js:586)
at NgModuleInjector.get (ng_module_factory.js:98)
at DebugAppView._View_AppComponent_Host0.createInternal (AppComponent.ngfactory.js:16)
at DebugAppView.AppView.create (view.js:101)
ERROR CONTEXT:
DebugContext {_view: _View_AppComponent_Host0, _nodeIndex: 0, _tplRow: 0, _tplCol: 0}_nodeIndex: 0_staticNodeInfo: (...)_tplCol: 0_tplRow: 0_view: _View_AppComponent_Host0component: (...)componentRenderElement: (...)context: (...)injector: (...)providerTokens: (...)references: (...)renderNode: (...)source: (...)__proto__: Object
Unhandled Promise rejection: EXCEPTION: Error in ./AppComponent class AppComponent_Host - inline template:0:0
ORIGINAL EXCEPTION: No provider for Auth!
ORIGINAL STACKTRACE:
Error: DI Exception
at NoProviderError.BaseException [as constructor] (http://localhost:4200/main.bundle.js:1867:23)
at NoProviderError.AbstractProviderError [as constructor] (http://localhost:4200/main.bundle.js:29230:16)
at new NoProviderError (http://localhost:4200/main.bundle.js:29267:16)
at ReflectiveInjector_._throwOrNull (http://localhost:4200/main.bundle.js:58584:19)
at ReflectiveInjector_._getByKeyDefault (http://localhost:4200/main.bundle.js:58612:25)
at ReflectiveInjector_._getByKey (http://localhost:4200/main.bundle.js:58575:25)
at ReflectiveInjector_.get (http://localhost:4200/main.bundle.js:58384:21)
at NgModuleInjector.get (http://localhost:4200/main.bundle.js:42059:52)
at DebugAppView._View_AppComponent_Host0.createInternal (AppComponent.ngfactory.js:16:70)
at DebugAppView.AppView.create (http://localhost:4200/main.bundle.js:59148:21)
ERROR CONTEXT:
[object Object] ; Zone: <root> ; Task: Promise.then ; Value: ViewWrappedException {_wrapperMessage: "Error in ./AppComponent class AppComponent_Host - inline template:0:0", _originalException: NoProviderError, _originalStack: "Error: DI Exception↵ at NoProviderError.BaseExc…e (http://localhost:4200/main.bundle.js:59148:21)", _context: DebugContext, _wrapperStack: "Error: Error in ./AppComponent class AppComponent_… at http://localhost:4200/main.bundle.js:27889:27"}
Error: Uncaught (in promise): EXCEPTION: Error in ./AppComponent class AppComponent_Host - inline template:0:0(…)

网页是空白的。什么都没有出现。

如有任何帮助,我们将不胜感激。

干杯,

最佳答案

这就是我实现的方式,并且运行良好 Code Geek

app.module.ts

 import { AUTH_PROVIDERS } from 'angular2-jwt';
import { Auth } from './services/auth0.service';


@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [AUTH_PROVIDERS, Auth],
bootstrap: [AppComponent]
})
export class AppModule { }

index.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Angular2Auth0</title>
<base href="/">

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<script src="http://cdn.auth0.com/js/lock/10.2/lock.min.js"></script>
</head>
<body>
<app-root>Loading...</app-root>
</body>
</html>

app.component.ts

import { Component } from '@angular/core';
import { Auth } from './services/auth0.service';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})

export class AppComponent {

constructor(private auth: Auth) {
console.log(auth);
}


}

关于javascript - Angular 2 - Auth0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39283972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com