knplabs / knp-oauth-bundle
dev-master
2013-01-13 15:13 UTC
Requires
- php: >=5.3.2
- sensio/buzz-bundle: *
- symfony/framework-bundle: 2.1.*
Suggests
- symfony/doctrine-bundle: *
This package is auto-updated.
Last update: 2022-09-23 13:39:50 UTC
README
使用HWIOAuthBundle代替
KnpOAuthBundle,一个针对Symfony2的OAuth防火墙
2.1分支的说明
请注意,这是此包的2.1兼容分支。如果您正在使用Symfony 2.0.*,则应该升级。如果不能升级,您仍然可以使用2.0分支。
介绍
此包为Symfony2提供了一个OAuth防火墙。
您应该真的阅读完整文档,但如果您很着急(我知道您很着急),这个文件应该能帮助您快速搭建工作环境。
要求
- Symfony (2.1 (master分支)或更高版本)
- 依赖项
Buzz
(0.5或更高版本)SensioBuzzBundle
安装
将以下内容添加到您的deps
[Buzz]
git=https://github.com/kriswallsmith/Buzz.git
version=v0.5
[BuzzBundle]
git=https://github.com/sensio/SensioBuzzBundle.git
target=/bundles/Sensio/Bundle/BuzzBundle
[KnpOAuthBundle]
git=https://github.com/KnpLabs/KnpOAuthBundle.git
target=/bundles/Knp/Bundle/OAuthBundle
然后运行常规的bin/vendors
bin/vendors install
注册自动加载
$loader->registerNamespaces(array(
'Knp' => __DIR__.'/../vendor/bundles',
'Buzz' => __DIR__.'/../vendor/Buzz/lib'
));
在您的AppKernel
中注册包
$bundles = array(
new Knp\Bundle\OAuthBundle\KnpOAuthBundle(),
new Sensio\Bundle\BuzzBundle\SensioBuzzBundle(),
);
配置
使用KnpOAuthBundle
只需在您的security.yml
中配置一个oauth
防火墙。该包公开了一些配置指令以适应您的OAuth需求。以下是一个相当标准的配置示例
security:
firewalls:
login:
pattern: ^/secured/login$
security: false
secured_area:
pattern: ^/secured/
oauth:
oauth_provider: oauth
authorization_url: https://github.com/login/oauth/authorize
access_token_url: https://github.com/login/oauth/access_token
infos_url: https://github.com/api/v2/json/user/show
username_path: user.login
client_id: <your_oauth_client_id>
secret: <your_oauth_secret>
scope: <your_oauth_scope>
check_path: /secured/login_check
login_path: /secured/login
请参阅配置参考以了解配置选项的描述。
现在,您可能想知道,此包附带了一些预先配置好的OAuth提供者,例如
github
(必需选项:client_id
,secret
)- 嗯...这就是现在的全部内容。
如果您在列表中没有看到您喜欢的提供者,请不要担心,有三种解决方案,具体取决于您的紧急程度
- 实现它(并在之后贡献它将非常棒)
- 使用通用的OAuth提供者
- 让我们实现它。(请尽可能提供信息(
authorize_url
,access_token_url
,infos_url
(及其响应格式)和username_path
将很棒))
用户提供者
大多数情况下,如果您在使用 Doctrine,您将希望使用 EntityUserProvider
。
此提供者从数据库中检索用户,并在它们不存在的情况下动态创建它们。它需要 Doctrine 才能工作。它的工作方式与 Doctrine 的实体用户提供者完全一样,只是其配置键为 oauth_entity
providers:
secured_area:
oauth_entity:
class: KnpBundlesBundle:User
property: name