网站开发与调试实验报告,wordpress 菜单 表,学校网页设计模板html,网站 什么语言开发的认证与授权组件 malagu/security 。Malagu 框架结合传统后台管理系统和云计算平台的认证与授权理念#xff0c;并借鉴了 Spring Security 设计思想#xff0c;抽象了一套通用的认证与授权模型。Spring Security 对前后端分离架构支持不是特别友好#xff0c;Malagu 框架在这…认证与授权组件 malagu/security 。Malagu 框架结合传统后台管理系统和云计算平台的认证与授权理念并借鉴了 Spring Security 设计思想抽象了一套通用的认证与授权模型。Spring Security 对前后端分离架构支持不是特别友好Malagu 框架在这方面也做了不少改进。框架提供的认证与授权默认实现比较简单认证是基于用户名与密码方式授权是授权装饰器 EL 表达式。但是框架提供了很多扩展点基于这些扩展点我们可以实现各种各样复杂的认证与授权实现例如 malagu/oauth2-client 组件是基于 malagu/security 组件扩展实现提供了基于 ODIC 的认证和 OAuth2.0 的授权能力。使用方法框架提供了一个开箱即用的组件 malagu/security 该组件提供了一套默认的行为规则例如默认的登录页面路由默认的登录提交路由默认的密码 Hash 算法默认的登录成功页面路由默认的登出成功页面路由默认的用户服务接口实现从内存中加载用户信息。等等大部分默认行为我们无需自定义。有少量是需要我们根据业务情况自己实现的比如登录页面、登录成功页面、登出成功页面以及用户服务接口的实现从数据库中加载用户信息。安装 malagu/security 组件如下yarn add malagu/security # 或者 npm i malagu/security实现登录页面在登录页面中默认需要通过 POST 方法可以自定义并且携带用户名username和密码password信息发送请求到 /login 该动作将触发认证流程。默认提供的内置用户信息用户名/密码为 admin/123456我们也可以实现用户服务接口 UserService 提供真实业务的用户信息。在后端当用户名和密码认证成功则跳转到登录成功页面默认登录成功页面路由是 / 否则跳转到登录页面 /login 。接口与页面保护当我们添加了该组件后默认对外的接口方法和页面都会被保护起来可以通过属性 malagu.security.enabled 全局关闭方法保护需要登录以后才能访问接口方法。我们也可以给接口方法配置需要拥有什么样的权限才能访问该组件默认提供了 PreAuthorize 装饰器定义接口方法需要什么样的权限才能够被访问。Get()
PreAuthorize(hasRole(admin)) // 表示当前登录的用户需要拥有管理员角色才可访问
Transactional({ readOnly: true })
list(): PromiseUser[] {const repo OrmContext.getRepository(User);return repo.find();
}当没有登录的时候通过 ajax 直接访问接口将返回 401 状态码通过浏览器访问页面将返回 302 状态码重定向到登录页面登录成功后又会重定向到最开始要访问的页面。登录成功后当我们有权限访问该方法或页面则访问成功否则访问失败返回 403 状态码。匿名访问方法上添加装饰器 Anonymous 可以让方法可以匿名访问。Get()
Anonymous()
Transactional({ readOnly: true })
list(): PromiseUser[] {const repo OrmContext.getRepository(User);return repo.find();
}也可以添加到类上让类的所有方法可以里面访问。Controller(users)
Anonymous()
export class UserController {...
}相关链接Malagu 框架项目地址Malagu 框架文档地址