# ecode-identity

> ecode 组织人员身份模块 包含组织 人员 租户管理

Latest version **0.0.41** (published 2023-10-11) · 0 weekly downloads

## Install

```sh
npm install ecode-identity
pnpm add ecode-identity
yarn add ecode-identity
bun add ecode-identity
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.41 |
| Published | 2023-10-11 |
| First published | 2023-07-10 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 84.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | wangyouwei |

## Links

- npm: https://www.npmjs.com/package/ecode-identity
- npm.io page: https://npm.io/package/ecode-identity

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^2.3.0

## Recent versions

- 0.0.41 (latest) — 2023-10-11
- 0.0.40 — 2023-09-07
- 0.0.39 — 2023-09-07
- 0.0.38 — 2023-08-28
- 0.0.37 — 2023-08-07
- 0.0.36 — 2023-07-24
- 0.0.35 — 2023-07-18
- 0.0.34 — 2023-07-17
- 0.0.33 — 2023-07-13
- 0.0.32 — 2023-07-11
- 0.0.31 — 2023-07-11
- 0.0.30 — 2023-07-11
- 0.0.29 — 2023-07-11
- 0.0.28 — 2023-07-11
- 0.0.26 — 2023-07-11
- … 7 more at https://npm.io/package/ecode-identity/versions

## README

# EcodeIdentity
ecode 组织人员身份模块 包含组织 人员 租户管理

# 使用
## 创建新项目
```
ng new test
```

## 安装
```
npm install ecode-identity
```
## 导入模块
```
@NgModule({
  imports: [
    IdentityModule.forRoot()
  ]
})
```
## 配置

依赖ecode-auth模块 先配置auth模块的AUTH_CONFIG
```
export function initializeAuthConfig(factory: EcodeAuthConfigFactory) {
  let config = factory.getConfig(
    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgKEtllxrAZ1izOvtQbsv89sTp1KwNiqe3zoVEWu49CV80CntN2P42xi+kwx+DvrJx75WW0LpXOKkuAUUoBWrBgMh+Kx5+XwasPX36WfWtQ3OpJzmUPTvDD60w/gVpVc1xCYzRGNqSP/OBZyT/SxJDitD4UpTranpklRsIlv/+vwIDAQAB",
    "128",
    "http://localhost:3200"
  );
  config.loginRoute = '/login'
  return config;
}
@NgModule({
  imports: [
    IdentityModule
  ],
  providers: [
    {
      provide: AUTH_CONFIG,
      useFactory: initializeAuthConfig,
      deps: [EcodeAuthConfigFactory],
      multi: false
    }
  ],
})
```

## 创建login组件和home组件
```
ng g c login
ng g c home
```

## login组件
```
import { Component, OnInit } from '@angular/core';
import { AuthService } from 'ecode-auth';

@Component({
  selector: 'app-login',
  template: `
    <p>login works!</p>  `
})
export class LoginComponent implements OnInit{
  constructor(private authService:AuthService){

  }
  ngOnInit(): void {
    this.authService.login("替换为用户名", "替换为密码");
  }
}
```

## home组件
```
import { Component, OnInit } from '@angular/core';
import { AuthService } from 'ecode-auth';
import { IUser, IdentityService, User } from 'ecode-identity';

@Component({
  selector: 'app-home',
  template:`
    <p>{{user.name}}</p>
  `
})
export class HomeComponent implements OnInit {
  constructor(private authService: AuthService, private idService: IdentityService) {

  }
  user: IUser = new User();
  ngOnInit(): void {
    if (this.authService.token) {
      this.idService.identity().then(identity => {
        console.log(identity);
        this.user = identity.user;
      });
    }
  }
}
```

##　配置路由
```
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { authGuardFactory } from 'ecode-auth';
import { HomeComponent } from './components/home/home.component';
import { LoginComponent } from './components/login/login.component';
// 使用ecode-auth模块提供的路由守卫
const authGuard = authGuardFactory();
const routes: Routes = [
  { path: '', pathMatch: 'full',redirectTo:"/home"},
  { path: 'login', component:LoginComponent },
  // 将home路由配置路由守卫
  { path: 'home', canActivate: [authGuard], component:HomeComponent},
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

```

## 启动项目测试
```
npm start
```

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