2.0.0 • Published 6 years ago

ts-security-identity v2.0.0

Weekly downloads
12
License
ISC
Repository
-
Last release
6 years ago

ts-security-identity

A lightweight Typescript Security Identity Framework with Platform-Agnostic purposes (slightly based on WIF).

1. Getting Started

1.1 Installing

Install package from using npm

	npm install --save ts-security-identity

1.2 Build

Configure your build system to copy the files from node_modules/ts-security-identity to your dist/vendor/ts-security-identity folder.

1.3 Configuring

Recommendation to use SystemJS to load the package at runtime.

System.config({ 
  map: {
    'ts-security-identity': 'vendor/ts-security-identity/dist/prod/js/src/'
  },
  packages: {
    'ts-security-identity': {
      main: 'index.js'
    }
  }
 });

or

System.config({ 
  packageConfigPaths: ['vendor/ts-security-identity/package.json']
 });

2. Using

2.1 Initializing

To initialize, is needed to invoke the proper Initialize method.

  • With an encoded token:
let encodedAccessToken:string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImEzck1VZ...";
let encodedIdentityToken:string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImEzck1VZ...";
SecurityContextInitializer.InitializeWithEncodedTokens( [ encodedAccessToken, encodedIdentityToken ] );
  • With an token (any JSON):
let token:any = { name: 'João Vitor' };
SecurityContextInitializer.InitializeWithTokens( [ token ] );

2.2 Authentication

Check if the user is authenticated:

console.log(SecurityContext.Current.Principal.IsAuthenticated); //false
SecurityContextInitializer.InitializeWithEncodedTokens( [ "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImEzck1VZ..." ] );
console.log(SecurityContext.Current.Principal.IsAuthenticated); //true

2.3 Identity

Identity have a property named Claims of type Array<{key:string,value:any}> who allow us to check against informations delivered by the tokens.

Sample:

	let name = SecurityContext.Current.Principal.Identity.Claims.filter((claim) => claim.key === "name")[0].value;
  • But also, let us tho extend the built-in Identity with aditional static-typed informations:
    class CustomizedIdentity extends Identity
    {
        public get ClientId() : string 
        {
            return this.findFirst<string>('client_id');
        }
    }
    
    let customizedIdentity :CustomizedIdentity = new CustomizedIdentity( [{ key: 'client_id', value: '2380' }] );
    console.log(customizedIdentity.ClientId); // '2380'
    SecurityContext.Current.Principal.Identity = customizedIdentity;
2.0.0

6 years ago

1.3.0

6 years ago

1.2.2

7 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago