0.0.41 • Published 2 years ago

ecode-auth v0.0.41

Weekly downloads
-
License
-
Repository
-
Last release
2 years 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

2 years ago

0.0.41

2 years ago

0.0.38

2 years ago

0.0.39

2 years ago

0.0.37

2 years ago

0.0.36

2 years ago

0.0.35

2 years ago

0.0.34

2 years ago

0.0.33

2 years ago

0.0.32

2 years ago

0.0.31

2 years ago

0.0.30

2 years ago

0.0.29

2 years ago

0.0.28

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago