Bearer Token策略
使用一段普通的token令牌作为身份依据
安装
bash
pnpm add @aomex/auth-bearer-strategy
使用
typescript
import { authentication } from '@aomex/auth';
import { BearerStrategy } from '@aomex/auth-bearer-strategy';
export const auth = new Authentication({
strategies: {
bearer: new BearerStrategy({
async onLoaded(token, ctx) {
// 返回值的类型会被反向推导到中间件
return { id: 1, name: 'abc' };
},
}),
},
});
参数
onLoaded
签名:(token: string, ctx: WebContext) => Promise<T | false>
获取令牌后,需要返回这个token相应的身份数据,比如:{ id: 1, name: 'abc' }
。如果token是无效的,请直接返回false
返回的身份数据在路由中可直接使用
typescript
export const router = new Router();
router.get('/api', {
action: (ctx) => {
console.log(ctx.bearer.data); // { id: 1, name: 'abc' }
},
});
tokenLoaders
签名:TokenLoaderItem[]
默认值:[{ type: 'header', key: 'authorization' }]
允许从不同的位置获取令牌,并按照数据顺序依次寻找,直到找到令牌。
type包含:header, body, query, cookie
header的key建议使用authorization
,其它源的key建议使用access_token
方法
signature
签名:(algorithm: string, uniqueKey?: string | number) => string
strategy包含一个生成token的方法
typescript
const token = auth.strategy('bearer').signature('md5');