uni-firebase-user

0.0.7 • Public • Published

AIS - Firebase User

This sub-module to takes care of user related requirements such as :

  • Authentication
  • Session management (ToDo)

Installation

  1. Import and provide the module and the primary auth guard to your module:
import { AngularFireModule } from 'angularfire2'; // Needs one per AIS App
import * as firebaseConfig from '../../firebase'; // Needs one per AIS App

import { FirebaseUserModule, AuthenticatedGuard } from 'ais-firebase-user';

export const APP_IMPORTS = [
    ...
    AngularFireModule.initializeApp(firebaseConfig.common,firebaseConfig.auth),
    FirebaseUserModule
];

export const APP_PROVIDERS = [
  ...
  AuthenticatedGuard
];

Note: Firebase config file must contain the following information:

import { AuthProviders, AuthMethods } from 'angularfire2';

export const common = {
  apiKey: 'xyzABC',
  authDomain: 'aaa.firebaseapp.com',
  databaseURL: 'https://aaa.firebaseio.com',
  storageBucket: 'aaa.appspot.com',
  messagingSenderId: '0123456789'
};

export const auth = {
  provider: AuthProviders.Password,
  method: AuthMethods.Password
};
  1. Add the primary auth guard to your routing as follows. Login related pages (login, forgot-password, change-password etc.) are automaticall imported with the FirebaseUserModule in the previous step
import { AuthenticatedGuard } from 'ais-firebase-user';

export const routes: Routes = [
  { path: '', component: DashboardPage, canActivate: [AuthenticatedGuard], pathMatch: 'full' },
  { path: 'about', component: AboutPage, canActivate: [AuthenticatedGuard]  },
  { path: '**', component: NotFoundPage }
];

  1. Import user store components to your root reducer:
import { UserReducer, UserState } from 'ais-firebase-user';

export interface AppState {
  router: RouterState;
  system: SystemState;
  user: UserState;
};

const reducers = {
  router: routerReducer,
  system: SystemReducer,
  user: UserReducer
};
  1. Provide a simple logout button anywhere in your application. All you need to call is this method:
import { Store } from '@ngrx/store';
import { AppState } from '../../store/root.reducer';
import { UserActions } from 'ais-firebase-user';
...
constructor(..., private store: Store<AppState>) {}
...
this.store.dispatch(new UserActions.Logout({}));

Requirements

  • The Host app must have a valid AngularFire2 connection

NPM Dependencies

  • firebase
  • angularfire2
  • @ngrx/store, @ngrx/effects

Exported components

  • FirebaseUserModule (to be imported to host app module)
  • AuthenticatedGuard service, to be used in host app's routing to prevent unauthorized users' access
  • ngrx components:
    • UserReducer, UserState, UserStateInitial
    • UserActions
    • UserEffects
    • User (Model)
  • Page components (and routes) to control the user interactions with auth. These components are imported implicitly with routing.
    • LoginPage (/login route)
    • ForgotPasswordPage (/forgot-password route)

Details

  • Starting AIS Version: v0.0.3

Readme

Keywords

none

Package Sidebar

Install

npm i uni-firebase-user

Weekly Downloads

0

Version

0.0.7

License

MIT

Last publish

Collaborators

  • kemalyalcinkaya