holabs / security
在您的 Nette Framework 项目中添加同时使用多种认证方式的能力
v1.0.9
2018-06-20 09:56 UTC
Requires
- php: >=5.6
- holabs/ui: ~1.0
- nette/di: ~2.4
- nette/utils: ~2.4
README
添加使用更多认证方法的能力,例如基本表单、Facebook 和 Google 同时使用。此包仅包含基本表单。
安装
需求
- php 5.6+
- Holabs/UI
- nette/di
- nette/utils
composer require holabs/security
配置
security: Holabs\Security\Bridges\Nette\SecurityExtension security: authenticators: basic: Holabs\Security\Authenticators\Basic # auth_name: authenticator\class
在 authenticators 中可以定义所有您的认证器。名称用于组件。
使用
您的 SignPresenter 现在可以看起来像这样
<?php use Holabs\Security\Container; use Nette\Application\UI\Presenter; use Nette\Application\UI\Multiplier; /** * @author Tomáš Holan <mail@tomasholan.eu>, D-Music s.r.o. [www.d-music.cz] * @package holabs/security * @copyright Copyright © 2016, D-Music s.r.o. [www.d-music.cz] */ class SignPresenter extends Presenter { /** @var Container @inject */ public $container; public function renderIn(){ $this->template->authenticators = $this->container->getAuthenticators(); } /** * @return Multiplier */ protected function createComponentLogin(){ return new Multiplier(function($name) { return $this->container->getAuthenticator($name); }); } }
现在您可以渲染您想要的任何内容。您可以在 in.latte
中渲染所有内容
<div n:inner-foreach="$authenticators as $name => $authenticator"> {control $authenticator} {*control $authenticators-{$name}*} </div>
或者只渲染您想要的(认证器名称与配置文件中定义的名称相同)
<div> {control $authenticators-basic} </div>