@mw-components/jwt

midway component jwt

Usage no npm install needed!

<script type="module">
  import mwComponentsJwt from 'https://cdn.skypack.dev/@mw-components/jwt';
</script>

README

@mw-components/jwt siging,

verifying and authentication for midway framework.

Installation

npm i @mw-components/jwt

Configuration

Enable Plugin

Edit ${app_root}/src/configuration.ts:

import { join } from 'path'
import { ILifeCycle } from '@midwayjs/core'
import { Configuration } from '@midwayjs/decorator'
import * as jwt from '@mw-components/jwt'

@Configuration({
  imports: [
    jwt,
  ],
  importConfigs: [join(__dirname, 'config')],
})
export class ContainerConfiguration implements ILifeCycle { }


declare module '@midwayjs/core' {
  interface Context {
    jwtState: JwtState<JwtUser>
  }
}
export interface JwtUser {
  uid: string
  uname: string
}

Add Configurations

/* location: ${app_root}/src/config/config.${env}.ts */

import {
  JwtConfig,
  JwtMiddlewareConfig,
  initialJwtMiddlewareConfig,
} from '@mw-components/jwt'

export const jwtConfig: JwtConfig = {
  secret: '123456abc', // 默认密钥,生产环境一定要更改!
}
export const jwtMiddlewareConfig: JwtMiddlewareConfig = {
  ...initialJwtMiddlewareConfig,
  enableMiddleware: true,
}
// add extra ignore rules
jwtMiddlewareConfig.ignore = jwtMiddlewareConfig.ignore?.concat([
  '/ip',
  '/test/sign',
  /\/foo\/bar.+/u,
])

License

MIT