Я использую ngx-admin и до сих пор мне удалось создать необходимые страницы, которые будут отображаться на панели инструментов, но сейчас я пытаюсь настроить модуль auth таким образом, чтобы при запуске страница входа была показывается пользователю и после входа в систему пользователь будет перенаправлен на страницу панели инструментов, но модуль auth создается в небулярной теме, и все файлы являются там файлами декларации, например, auth.module.d.ts
из-за этого d в этих файлах я не могу напишите там любую функцию, и мне также нужно настроить вход в систему с помощью firebase. До сих пор я мог показывать страницу входа в систему при запуске, но теперь мне нужно настроить эти файлы, чтобы начать связь с сервером firebase, и вход в систему начнет работать. Я уже установил пакеты Firebase, которые были необходимы. Так что теперь я не уверен, как и где мне нужно создавать сервисы
Вот некоторые из моих файлов модуля авторизации
auth.component.d.ts
import { OnDestroy } from '@angular/core';
import { Location } from '@angular/common';
import { NbAuthService } from '../services/auth.service';
export declare class NbAuthComponent implements OnDestroy {
protected auth: NbAuthService;
protected location: Location;
private alive;
subscription: any;
authenticated: boolean;
token: string;
constructor(auth: NbAuthService, location: Location);
back(): boolean;
ngOnDestroy(): void;
}
login.component.d.ts
import { ChangeDetectorRef } from '@angular/core';
import { Router } from '@angular/router';
import { NbAuthSocialLink } from '../../auth.options';
import { NbAuthService } from '../../services/auth.service';
export declare class NbLoginComponent {
protected service: NbAuthService;
protected options: {};
protected cd: ChangeDetectorRef;
protected router: Router;
redirectDelay: number;
showMessages: any;
strategy: string;
errors: string[];
messages: string[];
user: any;
submitted: boolean;
socialLinks: NbAuthSocialLink[];
rememberMe: boolean;
constructor(service: NbAuthService, options: {}, cd: ChangeDetectorRef, router: Router);
login(): void;
getConfigValue(key: string): any;
}
auth.service.d.ts
import { Observable } from 'rxjs';
import { NbAuthStrategy } from '../strategies/auth-strategy';
import { NbAuthResult } from './auth-result';
import { NbTokenService } from './token/token.service';
import { NbAuthToken } from './token/token';
/**
* Common authentication service.
* Should be used to as an interlayer between UI Components and Auth Strategy.
*/
export declare class NbAuthService {
protected tokenService: NbTokenService;
protected strategies: any;
constructor(tokenService: NbTokenService, strategies: any);
/**
* Retrieves current authenticated token stored
* @returns {Observable<any>}
*/
getToken(): Observable<NbAuthToken>;
/**
* Returns true if auth token is present in the token storage
* @returns {Observable<boolean>}
*/
isAuthenticated(): Observable<boolean>;
/**
* Returns true if valid auth token is present in the token storage.
* If not, calls the strategy refreshToken, and returns isAuthenticated() if success, false otherwise
* @returns {Observable<boolean>}
*/
isAuthenticatedOrRefresh(): Observable<boolean>;
/**
* Returns tokens stream
* @returns {Observable<NbAuthSimpleToken>}
*/
onTokenChange(): Observable<NbAuthToken>;
/**
* Returns authentication status stream
* @returns {Observable<boolean>}
*/
onAuthenticationChange(): Observable<boolean>;
/**
* Authenticates with the selected strategy
* Stores received token in the token storage
*
* Example:
* authenticate('email', {email: 'email@example.com', password: 'test'})
*
* @param strategyName
* @param data
* @returns {Observable<NbAuthResult>}
*/
authenticate(strategyName: string, data?: any): Observable<NbAuthResult>;
/**
* Registers with the selected strategy
* Stores received token in the token storage
*
* Example:
* register('email', {email: 'email@example.com', name: 'Some Name', password: 'test'})
*
* @param strategyName
* @param data
* @returns {Observable<NbAuthResult>}
*/
register(strategyName: string, data?: any): Observable<NbAuthResult>;
/**
* Sign outs with the selected strategy
* Removes token from the token storage
*
* Example:
* logout('email')
*
* @param strategyName
* @returns {Observable<NbAuthResult>}
*/
logout(strategyName: string): Observable<NbAuthResult>;
/**
* Sends forgot password request to the selected strategy
*
* Example:
* requestPassword('email', {email: 'email@example.com'})
*
* @param strategyName
* @param data
* @returns {Observable<NbAuthResult>}
*/
requestPassword(strategyName: string, data?: any): Observable<NbAuthResult>;
/**
* Tries to reset password with the selected strategy
*
* Example:
* resetPassword('email', {newPassword: 'test'})
*
* @param strategyName
* @param data
* @returns {Observable<NbAuthResult>}
*/
resetPassword(strategyName: string, data?: any): Observable<NbAuthResult>;
/**
* Sends a refresh token request
* Stores received token in the token storage
*
* Example:
* refreshToken('email', {token: token})
*
* @param {string} strategyName
* @param data
* @returns {Observable<NbAuthResult>}
*/
refreshToken(strategyName: string, data?: any): Observable<NbAuthResult>;
/**
* Get registered strategy by name
*
* Example:
* getStrategy('email')
*
* @param {string} provider
* @returns {NbAbstractAuthProvider}
*/
protected getStrategy(strategyName: string): NbAuthStrategy;
private processResultToken;
}
environment.ts
export const environment = {
production: false,
firebase: {
apiKey: "--------------------------------------",
authDomain: "xxxxxxxxxxxxx.firebaseapp.com",
databaseURL: "https://----------.firebaseio.com",
projectId: "xxxxxxxxx-bde65",
storageBucket: "",
messagingSenderId: "xxxxxxxxxxxxxx",
}
};
P.S. Если мне нужно написать слишком много кода, вы можете объяснить мне, как мне нужно писать, но если вы можете помочь мне с этим, это было бы здорово.