Symfony如何使用注解@Security
我找不到任何关于如何使用symfony的注解@Security的清晰帖子。 我可以使用哪些参数?最重要的是,我如何确保控制器不受来宾的影响,并且只能由用户访问 目前我有Symfony如何使用注解@Security,symfony,Symfony,我找不到任何关于如何使用symfony的注解@Security的清晰帖子。 我可以使用哪些参数?最重要的是,我如何确保控制器不受来宾的影响,并且只能由用户访问 目前我有 /** * * @Route("/reseller/create/", name="app_reseller_create", methods={"POST", "GET"}) * @IsGranted("ROLE_ADMIN&qu
/**
*
* @Route("/reseller/create/", name="app_reseller_create", methods={"POST", "GET"})
* @IsGranted("ROLE_ADMIN")
*/
public function create(Request $request): Response
{
}
@同意
如果只想检查用户是否已登录,则可以使用特殊属性而不是角色。对于完整控制器,必须在类定义上设置它
/**
*@isgrated(“已完全认证”)
*/
类MyClass{
有一些特殊属性可以在任何可以使用角色的地方使用
已登录已通过身份验证\u完全
是否已登录或具有已记住的cookie是否经过身份验证\u是否已记住
任何用户都有此权限是否以匿名方式进行身份验证
仅限来宾是匿名的
具有rmembered cookie的用户仅被记住
仅在会话中模拟其他用户的用户是\u模拟者
是匿名的
、是记忆的
和是模拟的
属性
@保安
安全注释与isgrated注释相比更加灵活,并且可以使用表达式
假设您想要一个页面,该页面只有在用户是管理员并且在其请求中具有特定令牌时才能访问
- 通过
@isgrated
/**
*@isgrated(“角色\管理员”,状态码=404)
*/
公共功能展示(请求$Request,Post$Post)
{
如果(!$request->request->has('privatetoken')| |'mytoken'!==$request->request->get('privatetoken')){
返回$this->createNotFoundException('notfound');
}
//展示柱
}
- 使用
@安全性
/**
*@Security(“已授予('ROLE\u ADMIN')和request.get('privatetoken')=='mytoken',状态码=404)
*/
公共活动展览(Post$Post)
{
//展示柱
}
这样,您必须具有管理员角色,并且在url中具有privatetoken
参数,如mydomain.com/post/show/?privatetoken=mytoken
,并且您不需要请求实例
表达式可以访问以下变量:
:当前安全令牌令牌
:当前用户对象user
:请求实例请求
:用户角色角色
- 和所有请求属性
谢谢分享!我需要一种API方法。我想这个令牌可以使用。但是如果你有建议,我会很高兴。如果你使用API平台构建API,也是一样的。请看: