Appearance
权限控制
⭐⭐⭐⭐⭐
本项目后台使用 JWT 用户身份验证,后台的路由权限和按钮权限通过装饰器来设置,前台使用 Cookies 加密方式验证会员身份。
后台
如何新增权限
在后台设置好对应的权限名称,如下图: 
设置权限
设置 @Admin() 后,此接口将验证用户是否登录。
ts
@Get('getDashboardData')
@Admin()
getDashboardData(): Promise<DashboardDataInfo> {
return this.DashboardService.getDashboardData()
}设置 @Admin(XXX) 后,此接口将验证用户是否登录并且还会验证用户是否拥有XXX权限。
ts
@Post('queryList')
@Admin('list_article')
queryList(@Body() queryDTO: ArticleQueryDTO): Promise<ArticleListVO> {
return this.ArticleService.queryList(queryDTO)
}如果传了多个参数,将验证用户拥有其中一个权限即可。
ts
@Post('queryList')
// 用户只要有 'list_article' 或者 'list_articleType' 其中一个权限即可通过验证。
@Admin('list_article', 'list_articleType')
queryList(@Body() queryDTO: ArticleQueryDTO): Promise<ArticleListVO> {
return this.ArticleService.queryList(queryDTO)
}前台
参数中增加 @Member() 后,此接口将验证博客会员是否登录。
ts
@Post('saveArticleComment')
saveArticleComment(@Body() addNewDTO: BlogArticleComentAddNewDTO, @Member() member: any): Promise<Boolean> {
return this.blogArticleService.saveArticleComment(addNewDTO, member);
}