关于SAP Spartacus重载(override)UserAuthenticationTokenService的问题
無法通過下列語句導入這個服務:
import {UserAuthenticationTokenService} from '@spartacus/core/src/auth/services/user-authentication/user-authentication-token.service';解決辦法:
While it’s true that it’s not being exported directly in Spartacus 2.x, I have found that it is still available. If you look at the compiled spartacus-core.d.ts file, you will see that UserAuthenticationTokenService is being exported under a gibberish(莫名其妙的) name:
export { UserAuthenticationTokenService as ?bj } from './src/auth/services/user-authentication/user-authentication-token.service';While this is probably not the best idea, I have found that you can actually import this in your own code. You can also rename it back to the original name for legibility:
import { ?bj as UserAuthenticationTokenService } from '@spartacus/core';I have used this myself on my current project and it seems to work fine:
@Injectable({providedIn: 'root' }) export class MyUserAuthenticationTokenService extends UserAuthenticationTokenService {} import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MyUserAuthenticationTokenService } from './services/my-user-authentication-token.service'; import { ?bj as UserAuthenticationTokenService } from '@spartacus/core';@NgModule({declarations: [],imports: [CommonModule,],providers: [{ provide: UserAuthenticationTokenService, useExisting: MyUserAuthenticationTokenService }] }) export class MyAuthModule { }-
If you’re using Spartacus 2.x, UserAuthenticationTokenService is present in @spartacus/core, but unfortunately it doesn’t seem to be exposed in the public api. Therefore, you won’t be able to import it.
-
If you’re using Spartacus 3.x, UserAuthenticationTokenService was removed. Spartacus 3.0 introduces a new session management implementation. You can learn more about it here.
總結
以上是生活随笔為你收集整理的关于SAP Spartacus重载(override)UserAuthenticationTokenService的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus 用户登录成功
- 下一篇: 如何在Angular单元测试里,对cla