0.0.41 • Published 2 years ago
ecode-auth v0.0.41
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