1.8.151 • Published 12 months ago

@gapi/auth v1.8.151

Weekly downloads
400
License
MIT
Repository
github
Last release
12 months ago

@Gapi authentication Module

For questions/issues you can write ticket here
This module is intended to be used with rxdi or gapi

Installation and basic examples:

To install this Gapi module, run:
$ npm install @gapi/auth --save

Consuming @gapi/auth

Import inside AppModule or CoreModule
import { Module } from "@rxdi/core";
import { AuthModule } from "@gapi/auth";

@Module({
    imports: [
       AuthModule.forRoot({
            algorithm: 'HS256',
            cert: 'dadada',
            cyper: {
                algorithm: 'dada',
                iv: '',
                privateKey: 'dadada'
            }
        }),
    ]
})
export class CoreModule {}
Create Auth Service and provide it
import { Service } from '@rxdi/core';
import * as Boom from 'boom';
import { AuthInterface, AuthInternalService, TokenData } from '@gapi/auth';

export interface UserInfo {
    scope: ['ADMIN', 'USER'];
    type: 'ADMIN' | 'USER';
    iat: number;
}

@Service()
export class AuthService implements AuthInterface {

    constructor(
        private authService: AuthInternalService
    ) { }

    onSubOperation(message, params, webSocket) {
        return params;
    }

    onSubConnection(connectionParams): TokenData {
        if (connectionParams.token) {
            return this.validateToken(connectionParams.token, 'Subscription');
        } else {
            throw Boom.unauthorized();
        }
    }

    validateToken(token: string, requestType: 'Query' | 'Subscription' = 'Query'): any {
        const user = <any>this.authService.verifyToken(token);
        user.type = user.scope[0];
        console.log(`${requestType} from: ${JSON.stringify(user)}`);
        if (user) {
            return user;
        } else {
            throw Boom.unauthorized();
        }
    }

    signJWTtoken(tokenData: TokenData): string {
        return this.authService.sign(tokenData);
    }

    issueJWTToken(tokenData: TokenData) {
        const jwtToken = this.authService.sign({
            email: '',
            id: 1,
            scope: ['ADMIN', 'USER']
        });
        return jwtToken;
    }

    verifyToken(token: string): TokenData {
        return this.authService.verifyToken(token);
    }

    decryptPassword(password: string): string {
        return this.authService.decrypt(password);
    }

    encryptPassword(password: string): string {
        return this.authService.encrypt(password);
    }

}
Provide this particular Auth Service to authentication parameter inside CoreModule.forRoot
import { CoreModule, Module } from '@gapi/core';
import { AuthService } from './app/core/services/auth/auth.service';
import { AuthModule } from '@gapi/auth';
import { readFileSync } from 'fs';

@Module({
    imports: [
        AuthModule.forRoot({
            algorithm: 'HS256',
            cert: readFileSync('./cert.key'),
            cyper: {
                algorithm: 'aes256',
                iv: 'Jkyt1H3FA8JK9L3B',
                privateKey: '8zTVzr3p53VC12jHV54rIYu2545x47lA'
            }
        }),
        CoreModule.forRoot({
            pubsub: {
                authentication: AuthService
            },
            graphql: {
                authentication: AuthService
            },
        }),

    ]
})
export class FrameworkImports {}

Then Subscriptions, Mutations and Queries will be secured via single authentication method validateToken inside AuthService!

TODO: Better documentation...

Enjoy ! :)

1.8.151

12 months ago

1.8.150

1 year ago

1.8.146

2 years ago

1.8.147

2 years ago

1.8.148

2 years ago

1.8.149

2 years ago

1.8.145

2 years ago

1.8.144

2 years ago

1.8.142

2 years ago

1.8.143

2 years ago

1.8.141

2 years ago

1.8.140

2 years ago

1.8.139

2 years ago

1.8.135

2 years ago

1.8.136

2 years ago

1.8.137

2 years ago

1.8.138

2 years ago

1.8.131

3 years ago

1.8.132

3 years ago

1.8.133

3 years ago

1.8.134

3 years ago

1.8.130

3 years ago

1.8.128

4 years ago

1.8.129

4 years ago

1.8.127

4 years ago

1.8.126

4 years ago

1.8.125

4 years ago

1.8.122

4 years ago

1.8.123

4 years ago

1.8.124

4 years ago

1.8.119

4 years ago

1.8.120

4 years ago

1.8.121

4 years ago

1.8.118

4 years ago

1.8.117

4 years ago

1.8.116

4 years ago

1.8.114

4 years ago

1.8.115

4 years ago

1.8.113

4 years ago

1.8.109

4 years ago

1.8.110

4 years ago

1.8.111

4 years ago

1.8.112

4 years ago

1.8.108

4 years ago

1.8.107

4 years ago

1.8.106

4 years ago

1.8.104

4 years ago

1.8.105

4 years ago

1.8.102

4 years ago

1.8.103

4 years ago

1.8.101

4 years ago

1.8.100

5 years ago

1.8.99

5 years ago

1.8.98

5 years ago

1.8.96

5 years ago

1.8.97

5 years ago

1.8.94

5 years ago

1.8.95

5 years ago

1.8.93

5 years ago

1.8.92

5 years ago

1.8.91

5 years ago

1.8.90

5 years ago

1.8.88

5 years ago

1.8.89

5 years ago

1.8.85

5 years ago

1.8.86

5 years ago

1.8.87

5 years ago

1.8.84

5 years ago

1.8.83

5 years ago

1.8.82

5 years ago

1.8.81

5 years ago

1.8.80

5 years ago

1.8.79

5 years ago

1.8.77

5 years ago

1.8.78

5 years ago

1.8.75

5 years ago

1.8.76

5 years ago

1.8.73

5 years ago

1.8.74

5 years ago

1.8.72

5 years ago

1.8.71

5 years ago

1.8.68

5 years ago

1.8.69

5 years ago

1.8.70

5 years ago

1.8.67

5 years ago

1.8.65

5 years ago

1.8.66

5 years ago

1.8.62

5 years ago

1.8.63

5 years ago

1.8.64

5 years ago

1.8.61

5 years ago

1.8.60

5 years ago

1.8.58

5 years ago

1.8.59

5 years ago

1.8.57

5 years ago

1.8.56

5 years ago

1.8.55

5 years ago

1.8.54

5 years ago

1.8.53

5 years ago

1.8.52

5 years ago

1.8.50

5 years ago

1.8.51

5 years ago

1.8.49

5 years ago

1.8.47

5 years ago

1.8.48

5 years ago

1.8.46

5 years ago

1.8.44

5 years ago

1.8.45

5 years ago

1.8.43

5 years ago

1.8.42

5 years ago

1.8.41

5 years ago

1.8.40

5 years ago

1.8.39

5 years ago

1.8.38

5 years ago

1.8.37

5 years ago

1.8.36

5 years ago

1.8.35

5 years ago

1.8.34

5 years ago

1.8.33

5 years ago

1.8.31

5 years ago

1.8.32

5 years ago

1.8.30

5 years ago

1.8.29

5 years ago

1.8.25

5 years ago

1.8.26

5 years ago

1.8.27

5 years ago

1.8.24

5 years ago

1.8.22

5 years ago

1.8.23

5 years ago

1.8.21

6 years ago

1.8.20

6 years ago

1.8.19

6 years ago

1.8.18

6 years ago

1.8.17

6 years ago

1.8.16

6 years ago

1.8.15

6 years ago

1.8.14

6 years ago

1.8.13

6 years ago

1.8.12

6 years ago

1.8.11

6 years ago

1.8.10

6 years ago

1.8.9

6 years ago

1.8.8

6 years ago

1.8.7

6 years ago

1.8.6

6 years ago

1.8.5

6 years ago

1.8.4

6 years ago

1.8.3

6 years ago

1.8.2

6 years ago

1.8.1

6 years ago

1.8.0

6 years ago

1.7.8

6 years ago

1.7.7

6 years ago

1.7.6

6 years ago

1.7.5

6 years ago

1.7.4

6 years ago

1.7.3

6 years ago

1.7.2

6 years ago

1.7.1

6 years ago

1.7.0

6 years ago

1.6.33

6 years ago

1.6.32

6 years ago

1.6.31

6 years ago

1.6.30

6 years ago

1.6.29

6 years ago

1.6.28

6 years ago

1.6.27

6 years ago

1.6.26

6 years ago

1.6.25

6 years ago

1.6.24

6 years ago

1.6.23

6 years ago

1.6.22

6 years ago

1.6.21

6 years ago

1.6.20

6 years ago

1.6.19

6 years ago

1.6.18

6 years ago

1.6.17

6 years ago

1.6.16

6 years ago

1.6.15

6 years ago

1.6.14

6 years ago

1.6.13

6 years ago

1.6.12

6 years ago

1.6.11

6 years ago

1.6.10

6 years ago

1.6.9

6 years ago

1.6.8

6 years ago

1.6.7

6 years ago

1.6.6

6 years ago

1.6.5

6 years ago

1.6.4

6 years ago

1.6.3

6 years ago

1.6.2

6 years ago

1.6.1

6 years ago

1.6.0

6 years ago

1.5.39

6 years ago

1.5.38

6 years ago

1.5.37

6 years ago

1.5.36

6 years ago

1.5.35

6 years ago

1.5.34

6 years ago

1.5.33

6 years ago

1.5.32

6 years ago

1.5.31

6 years ago

1.5.30

6 years ago

1.5.29

6 years ago

1.5.28

6 years ago

1.5.27

6 years ago

1.5.26

6 years ago

1.5.25

6 years ago

1.5.24

6 years ago

1.5.23

6 years ago

1.5.22

6 years ago

1.5.21

6 years ago

1.5.20

6 years ago

1.5.19

6 years ago

1.5.18

6 years ago

1.5.17

6 years ago

1.5.16

6 years ago

1.5.15

6 years ago

1.5.14

6 years ago

1.5.13

6 years ago

1.5.12

6 years ago

1.5.11

6 years ago

1.5.10

6 years ago

1.5.9

6 years ago

1.5.8

6 years ago

1.5.7

6 years ago

1.5.6

6 years ago

1.5.5

6 years ago

1.5.4

6 years ago

1.5.3

6 years ago

1.5.2

6 years ago

1.5.1

6 years ago

1.5.0

6 years ago

1.4.94

6 years ago

1.4.93

6 years ago

1.4.92

6 years ago

1.4.91

6 years ago

1.4.90

6 years ago

1.4.89

6 years ago

1.4.88

6 years ago

1.4.87

6 years ago

1.4.86

6 years ago

1.4.85

6 years ago

1.4.84

6 years ago

1.4.83

6 years ago

1.4.82

6 years ago

1.4.81

6 years ago

1.4.80

6 years ago

1.4.79

6 years ago

1.4.78

6 years ago

1.4.77

6 years ago

1.4.76

6 years ago

1.4.75

6 years ago

1.4.74

6 years ago

1.4.73

6 years ago

1.4.72

6 years ago

1.4.71

6 years ago

1.4.70

6 years ago

1.4.69

6 years ago

1.4.68

6 years ago

1.4.67

6 years ago

1.4.66

6 years ago

1.4.65

6 years ago

1.4.64

6 years ago

1.4.63

6 years ago

1.4.62

6 years ago

1.4.61

6 years ago

1.4.60

6 years ago

1.4.59

6 years ago

1.4.58

6 years ago

1.4.57

6 years ago

1.4.56

6 years ago

1.4.55

6 years ago

1.4.54

6 years ago

1.4.53

6 years ago

1.4.52

6 years ago

1.4.51

6 years ago

1.4.50

6 years ago

1.4.49

6 years ago

1.4.48

6 years ago

1.4.47

6 years ago

1.4.46

6 years ago

1.4.45

6 years ago

1.4.44

6 years ago

1.4.43

6 years ago

1.4.41

6 years ago

1.4.40

6 years ago

1.4.39

6 years ago

1.4.38

6 years ago

1.4.37

6 years ago

1.4.36

6 years ago

1.4.35

6 years ago

1.4.34

6 years ago

1.4.33

6 years ago

1.4.32

6 years ago

1.4.31

6 years ago

1.4.30

6 years ago

1.4.29

6 years ago

1.4.28

6 years ago

1.4.27

6 years ago

1.4.26

7 years ago

1.4.25

7 years ago

1.4.24

7 years ago

1.4.23

7 years ago

1.4.22

7 years ago

1.4.21

7 years ago

1.4.20

7 years ago

1.4.19

7 years ago

1.4.18

7 years ago

1.4.17

7 years ago

1.4.16

7 years ago

1.4.15

7 years ago

1.4.14

7 years ago

1.4.13

7 years ago

1.4.12

7 years ago

1.4.11

7 years ago

1.4.10

7 years ago

1.4.9

7 years ago

1.4.8

7 years ago

1.4.7

7 years ago

1.4.6

7 years ago

1.4.5

7 years ago

1.4.4

7 years ago

1.4.3

7 years ago

1.4.2

7 years ago

1.4.1

7 years ago

1.4.0

7 years ago

1.3.3

7 years ago

1.3.2

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.58

7 years ago

1.2.57

7 years ago

1.2.56

7 years ago

1.2.55

7 years ago

1.2.54

7 years ago

1.2.53

7 years ago

1.2.52

7 years ago

1.2.51

7 years ago

1.2.50

7 years ago

1.2.49

7 years ago

1.2.48

7 years ago

1.2.47

7 years ago

1.2.45

7 years ago

1.2.44

7 years ago

1.2.43

7 years ago

1.2.42

7 years ago

1.2.41

7 years ago

1.2.40

7 years ago

1.2.39

7 years ago

1.2.38

7 years ago

1.2.37

7 years ago

1.2.36

7 years ago

1.2.35

7 years ago

1.2.34

7 years ago

1.2.33

7 years ago

1.2.32

7 years ago

1.2.31

7 years ago

1.2.30

7 years ago

1.2.29

7 years ago

1.2.26

7 years ago

1.2.25

7 years ago

1.2.24

7 years ago

1.2.23

7 years ago

1.2.22

7 years ago

1.2.21

7 years ago

1.2.19

7 years ago

1.2.18

7 years ago

1.2.17

7 years ago

1.2.16

7 years ago

1.2.15

7 years ago

1.2.14

7 years ago

1.2.13

7 years ago

1.2.12

7 years ago

1.2.11

7 years ago

1.2.10

7 years ago

1.2.9

7 years ago

1.2.8

7 years ago

1.2.7

7 years ago

1.2.5

7 years ago

1.2.4

7 years ago

1.2.3

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.36

7 years ago

1.0.35

7 years ago

1.0.34

7 years ago

1.0.33

7 years ago

1.0.32

7 years ago

1.0.31

7 years ago

1.0.30

7 years ago

1.0.29

7 years ago

1.0.28

7 years ago

1.0.27

7 years ago

1.0.26

7 years ago

1.0.25

7 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.19

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago