holabs/security

在您的 Nette Framework 项目中添加同时使用多种认证方式的能力

v1.0.9 2018-06-20 09:56 UTC

This package is auto-updated.

Last update: 2024-09-12 21:32:20 UTC


README

添加使用更多认证方法的能力,例如基本表单、Facebook 和 Google 同时使用。此包仅包含基本表单。

安装

需求

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>