npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ecode-auth

v0.0.41

Published

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

Downloads

11

Readme

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