我正在Angular2下开发应用程序,我选择Nebular前端 - https://akveo.github.io/nebular/#/home
文档对我来说并不是很详细,我不是Angular2的专家。
我正在努力 - API端点https://akveo.github.io/nebular/#/docs/auth/configuring-a-provider
我可以在哪里保存API基点?在哪个文件或文件的一部分?
受影响的代码:
{
baseEndpoint: 'http://...
...
我的代码(core.module.js):
import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NbEmailPassAuthProvider, NbAuthModule } from '@nebular/auth';
import { throwIfAlreadyLoaded } from './module-import-guard';
import { DataModule } from './data/data.module';
import { AnalyticsService } from './utils/analytics.service';
import { environment } from './../../environments/environment';
const NB_CORE_PROVIDERS = [
...DataModule.forRoot().providers,
...NbAuthModule.forRoot({
providers: {
email: {
service: NbEmailPassAuthProvider,
config: {
delay: 3000,
login: {
rememberMe: true,
},
},
},
},
forms: {
validation: {
password: {
required: true,
minLength: 6,
maxLength: 255,
},
email: {
required: true,
}
}
}
}).providers,
AnalyticsService
];
@NgModule({
imports: [
CommonModule,
],
exports: [
NbAuthModule,
],
declarations: [],
})
export class CoreModule {
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
throwIfAlreadyLoaded(parentModule, 'CoreModule');
}
static forRoot(): ModuleWithProviders {
return <ModuleWithProviders>{
ngModule: CoreModule,
providers: [
...NB_CORE_PROVIDERS,
],
};
}
}
答案 0 :(得分:1)
我试图将它付诸实践,而且我正在手册的同一部分。
据我所知,baseEndpoint: 'http://...
和其他配置配置在身份验证提供程序config
变量上。看起来像NgEmailPassAuthProviderConfig
类型(在@nebular/auth/providers/email-pass-auth.options
上定义)。
@NgModule({
imports: [
// ...
NbAuthModule.forRoot({
providers: {
email: {
service: NbEmailPassAuthProvider,
config: {
baseEndpoint: 'http://localhost:8080', // <-- here
login: {
rememberMe: true,
},
},
},
},
}),
],
});
&#13;
我已经设法在Spring rest API上调用它来调用api方法。我可以在status: 200
的浏览器上看到HttpResponse,但仍然得到&#34;哦!
出了点问题。&#34; NbLoginComponent
上的消息。
答案 1 :(得分:0)
为了正确创建api,请遵循以下步骤
1)在您的本地主机上实现this:
2)将此代码添加到core.module.ts
strategies: [
NbPasswordAuthStrategy.setup({
name: 'email',
login: {
requireValidToken: false,
},
baseEndpoint: 'http://localhost:4400/api/auth/',
logout: {
redirect: {
success: '/auth/login',
failure: '/auth/login',
},
},
requestPass: {
redirect: {
success: '/auth/reset-password',
},
},
resetPass: {
redirect: {
success: '/auth/login',
},
},
errors: {
key: 'data.errors',
},
}),
],
答案 2 :(得分:0)
我建议在具有内容的项目的根目录中创建一个proxy.conf.json代理
{
"/api/*": {
"target": "http://localhost",
"secure": false,
"logLevel": "debug"
}
}
然后使用以下命令启动角度应用程序 $ ng serve --port 8097 --proxy-config proxy.conf.json
记住您在ng serve命令中提到的* 8097 *端口
按如下所示完成添加基本URL:
{
baseEndpoint: '/api/',
...
有关代理配置的更多信息,请参考https://morioh.com/p/07bddb33e3ab
我希望有帮助