# sat-auth

> Библиотека для авторизации

Latest version **1.0.11** (published 2023-11-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install sat-auth
pnpm add sat-auth
yarn add sat-auth
bun add sat-auth
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.11 |
| Published | 2023-11-02 |
| First published | 2022-01-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 293.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | Александр Желнин |
| Maintainers | kulibin_s |
| Keywords | authorization, keycloak |

## Links

- npm: https://www.npmjs.com/package/sat-auth
- Repository: https://github.com/AlexanderZhelnin/angular-sat-auth-lib
- Homepage: https://www.youtube.com/channel/UCGntVzOD7faGCYbrUfd8PQg
- Issues: https://github.com/AlexanderZhelnin/angular-sat-auth-lib/issues
- npm.io page: https://npm.io/package/sat-auth

## Dependencies (5)

- [tslib](https://npm.io/package/tslib.md) ^2.1.0
- [jwt-decode](https://npm.io/package/jwt-decode.md) ^3.1.2
- [@angular/cdk](https://npm.io/package/@angular/cdk.md) ^13.1.1
- [@angular/material](https://npm.io/package/@angular/material.md) ^13.1.1
- [material-design-icons](https://npm.io/package/material-design-icons.md) ^3.0.1

## Alternatives

- [@clerk/clerk-expo](https://npm.io/package/@clerk/clerk-expo.md) — 133.6K weekly downloads
- [@pothos/plugin-authz](https://npm.io/package/@pothos/plugin-authz.md) — 12.4K weekly downloads
- [@bounded-sh/client](https://npm.io/package/@bounded-sh/client.md) — 3.2K weekly downloads
- [@luigi-project/plugin-auth-oauth2](https://npm.io/package/@luigi-project/plugin-auth-oauth2.md) — 2.3K weekly downloads
- [@nocobase/plugin-verification](https://npm.io/package/@nocobase/plugin-verification.md) — 2.0K weekly downloads

## Recent versions

- 1.0.11 (latest) — 2023-11-02
- 1.0.9 — 2022-01-19

## README

# SATWorker Библиотека авторизации. 

[Исходный код](https://github.com/AlexanderZhelnin/angular-sat-auth-lib)

[![Видео](https://img.youtube.com/vi/h_p6is3H1-g/0.jpg)](https://youtu.be/h_p6is3H1-g)

```ts
import { BehaviorSubject } from 'rxjs';
// Тут будет ваш компонент
import { MainComponent } from './main/main.component';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { AppComponent } from './app.component';
import { 
  SATAuthFormComponent, 
  SATAuthModule, 
  SATHttpInterceptorService, 
  SATAuthGuard, 
  SATAUTH_OPTIONS, 
  ISATAuth, 
  IUser } from 'sat-auth';
import { RouterModule } from '@angular/router';

@NgModule({
  declarations: [
    AppComponent,
    MainComponent

  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    SATAuthModule,
    RouterModule.forRoot([

      { path: 'login', component: SATAuthFormComponent, pathMatch: 'full' },
      // Тут буде ваш компонент, конечно лучше через ленивую загрузку 😉
      // Адрес защищён SATAuthGuard, без авторизации на этот адрес не возможно попасть
      { path: '', component: MainComponent, canActivate: [SATAuthGuard], pathMatch: 'full' },
      { path: '**', redirectTo: '/login' }

    ]),
  ],
  providers: [
    {
      provide: SATAUTH_OPTIONS, useValue: new BehaviorSubject<ISATAuth>(
        {
          // Адрес сервиса авторизации у вас будет свой адрес
          tokenServiceUrl: 'http://localhost:8080/auth/realms/SAT/protocol/openid-connect',
          // Идентификатор клиента
          clientId: 'DEMO',
          // Необязательная функция вызываемая по завершению авторизации
          logon: undefined, //() => { },
          // Необязательная функция проверки адреса на запрос без авторизации
          // пример: (url: string) => { return url==='/assets'; }
          canExecuteWithoutAuth: undefined,
          // Необязательная функция проверки авторизованного пользователя,
          // если возвращается не пустая строка,
          // то этот пользователь не будет авторизован, и строка будет выведена в качестве ошибки
          // пример: (user: IUser) => { return (user.roles.includes('важная роль') ? '' : 'Пользователь не поддерживает роль "важная роль"'); }
          checkAuth: undefined,
          // Необязательная функция получения логина и пароля, по умолчанию система сама имеет свою реализацию
          loginData: undefined,

        })
    },    
    { provide: HTTP_INTERCEPTORS, useClass: SATHttpInterceptorService, multi: true }
  ],
  bootstrap: [AppComponent]
})
export class AppModule
{

}
```

---
_Source: https://npm.io/package/sat-auth · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
