新在Symfo欧宝娱乐app下载地址ny 2.8:后卫身份验证组件
2015年11月4日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
Symf欧宝娱乐app下载地址ony的安全组件分为两个主要部分:身份验证和授权。的授权子系统检查用户是否有权限访问给定的资源。这个系统相关角色和选民和既强大和易于使用。
的认证子系统检查用户身份通过任何支持的方法:用户名+密码证书,API的令牌,等这个子系统是强大和灵活的,但很多Symfony开发商斗争的复杂性。欧宝娱乐app下载地址
一个新的安全相关组件警卫旨在简化认证子系统。这种激进的新方法是基于创建一个PHP类实现GuardAuthenticatorInterface
。这个接口定义了以下七个方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
接口GuardAuthenticatorInterface{/ * * *得到请求的身份验证凭证。如果你返回null, *身份验证将被忽略。例如,* *形式登录,您可能:* *返回数组(*“用户名”= > $请求- >请求- > (“_username”), *“密码”= > $请求- >请求- > (“_password”), *);* *或一个API令牌的标题,你可能会使用:* *返回数组(“api_key ' = >请求- >标题- >获取美元(' X-API-TOKEN '));* /公共函数getCredentials(请求美元请求);/ * * *返回一个用户界面对象根据返回的凭证getCredentials () * /公共函数getUser(美元凭证,UserProviderInterface美元userProvider);/ * * *抛出AuthenticationException如果* getCredentials()返回的凭证是无效的。* /公共函数checkCredentials(美元凭证,用户界面美元用户);/ * * *创建一个给定用户的身份验证令牌。你可以跳过这从你的* *方法通过扩展AbstractGuardAuthenticator类身份。* /公共函数createAuthenticatedToken(用户界面美元用户,美元providerKey);/ * * *叫当执行身份验证,但是失败(例如,错误的用户名密码)。* /公共函数onAuthenticationFailure(请求美元请求,AuthenticationException美元异常);/ * * *时调用身份验证和执行是成功的(例如* RedirectResponse他们访问的最后一页)* /公共函数onAuthenticationSuccess(请求美元请求,TokenInterface美元令牌,美元providerKey);/ * * *这个方法支持记得我饼干吗?* /公共函数supportsRememberMe();}
实现这个接口后你就可以通过登录表单验证用户,Facebook、Twitter或其他OAuth-based服务API的令牌,等。此外,您将能够定制成功和失败的行为很容易。
显示一个完整的示例的组件在行动超出这篇文章的目的,但是你可以阅读(和帮助我们完成)正在进行的工作文档欧宝体育电话组件和它的官方教程。
发表在#生活在边缘
评论
@Maxime这应该是固定了。我会检查一遍。
苦苦挣扎的开发者之一,我认为这看起来真的很棒。谢谢!
亚历克斯Poltarjonok
说在11月5日,2015年在32
现在添加谷歌或facebook变得非常简单!瑞安很好!
Sebastien CAUMES
说在11月5日,2015年在14:32
很好的计划!似乎容易测试和非常强大的
Maxime Steinhausser is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now——http://欧宝娱乐app下载地址www.oldmanjams.com/components
——http://欧宝娱乐app下载地址www.oldmanjams.com/components/Guard
是错误的^ ^”
它应该是https://github.com/symfony/s欧宝娱乐app下载地址ecurity-guard