0.0.41 • Published 7 months ago

ecode-auth v0.0.41

Weekly downloads
-
License
-
Repository
-
Last release
7 months ago

EcodeAuth

ecode 权限模块 可作为单点认证

配置说明:

export interface AuthConfig {
    tokenKey: string; // 系统使用的token键 例如 token 、Authorization
    loginRoute: string; // 登录地址路由
    loadByToken: LoadHandle, // 当获取到token后调用 可根据token写自己的逻辑 比如获取当前用户等
    publicKey: string; // rsa公钥 用来加密密码
    sso: {
        clientId: string; // 单点客户端ID
        accessCodeKey: string; // 单点accessCode键 例如 code 、accessCode
        accessCodeHandle: AccessCodeHandle; // 获取accessCode的处理 是一个Observable<ResponseResult<AccessCodeResult>>对象
        loginAddress: string; // 登录服务端地址
        logoutAddress: string; // 登出服务端地址
    },
    authExpireReturnCode: string; // 权限失败返回code值 例如 -1 标识权限失败
}

使用

创建新项目

ng new test

安装

npm install ecode-auth

导入模块

@NgModule({
  imports: [
    AuthModule
  ]
})

使用内部ecode默认实现配置provider

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: [
    AuthModule
  ],
  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';

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

  }
  token: string = '';
  ngOnInit(): void {
    if (this.authService.token) {
      console.log(this.authService.token);
      this.token = this.authService.token;
    }
  }
}

## 配置路由

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
0.0.40

8 months ago

0.0.41

7 months ago

0.0.38

9 months ago

0.0.39

8 months ago

0.0.37

9 months ago

0.0.36

10 months ago

0.0.35

10 months ago

0.0.34

10 months ago

0.0.33

10 months ago

0.0.32

10 months ago

0.0.31

10 months ago

0.0.30

10 months ago

0.0.29

10 months ago

0.0.28

10 months ago

0.0.26

10 months ago

0.0.25

10 months ago

0.0.21

10 months ago

0.0.20

10 months ago

0.0.18

10 months ago

0.0.17

10 months ago

0.0.16

10 months ago

0.0.15

10 months ago

0.0.14

10 months ago

0.0.13

10 months ago

0.0.12

10 months ago

0.0.11

10 months ago

0.0.10

10 months ago

0.0.9

10 months ago

0.0.7

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago