didweb / myt-segurata
MyT 框架 - 系统访问
Requires
- j4mie/idiorm: 1.5.*
- phpunit/phpunit: 4.1.*
This package is not auto-updated.
Last update: 2024-09-24 01:43:15 UTC
README
[开始文档][2]
限制区域访问控制系统。
本系统是为我的 MyT 框架MyT 设计的。
标准
自由访问页面有 0
访问权限,而具有不同权限的页面分配 1
或可以分配高于 0
的其他权限。
想法是用户通过权限类别进行分层定义,例如,具有访问权限 2 的用户可以访问所有定义为访问权限 2 或以下的页面。
这样,具有访问权限 1 的用户将无法访问定义为数字高于的页面或内容。
如果用户访问定义为访问权限高于 0
的页面,则将被重定向到访问页面以便进行身份验证。必须通过身份验证过程才能查看页面。
在 Framework MyT 中的功能和配置
以下详细说明如何在 Framework MyT 中进行配置,稍后我将详细说明如何在不使用 MyT 的情况下进行配置。
密钥
密钥以 sh1 编码存储。
密码由要设置的单词加上可以在 config/seguridad.yml
中定义的字符串组成。请注意,当手动创建 sh1 时,必须将密码和占位符一起设置。
为了访问系统,用户只需输入密码即可,因为占位符以内部方式安装来进行验证。
定义用户
可以在名为 config/seguridad.yml
的配置文件中定义用户,也可以在数据库中指定它们,然后系统将使用这些用户进行入口检查。
在配置文件中定义用户
在 config/seguridad.yml
文件中定义,此文件被转换为类以更快地访问这些数据,该类存储在 tmp/seguridad.php
中。
转换过程在检测到 config/seguridad.yml
配置文件中的更改时自动执行。
外观如下
Seguridad:
usuarios:
edu: e3f96800b051602e7ac5542e01747eb09147a54b:1
pepito: 5d212bd2fed57636c27d15965598817b1e45d3ca:1
其中,在此情况下,edu
和 pepito
是用户。直到 :
符号的长字符串是键的编码。在 :
符号之后可以看到为每个用户分配的访问类型。
在数据库中定义用户
如果您想在数据库中指定用户源,在 config/seguridad.yml
中需要指定 datosfuente
参数...
datosfuente:用于提供源参数,如源表的名称、用户字段和密码字段以及访问类型字段。
此参数的格式如下:NOMBRE_TABLA:NOMBRE_CAMPO_USUARIO:NOMBRE_CAMPO_PASSWORD:NOMBRE_CAMPO_TIPO_ACCESO
,由 :
分隔。
在 config/rutas.yml
中,我们必须指定该 URL 需要哪种访问源,通过 fuenteacceso
参数...
fuenteacceso:在此处将 bbdd
设置为通过数据库提供数据。
指定受限制页面的访问
在 URL 配置文件 config/rutas.yml
中,我们可以定义此 URL 的访问类型,例如:
IndexIdioma:
url: home/{lang:locale}
controller: Index::index
permiso: 0
fuenteacceso: sin
ruta_uno:
url: getsor/{lang:locale}/{pagina:int}
controller: Index::index2
permiso: 1
fuenteacceso: bbdd
在permiso
参数中指定了访问次数。在本例中,URLhome/es
、home/en
等可以由所有用户访问,无需身份验证。以下类型的URL:getsor/es/1
、getsor/en/1
、getsor/es/3
等,只有拥有1
或以上访问级别的已验证用户才能查看。
通过fuenteacceso
参数可以确定用户来源,如果设置为bbdd
,则将访问config/seguridad.yml
中的datosfuente
参数指定的详细数据库。
控制在哪里进行?
访问控制是在app/Bootstrap.php
文件中进行的,其中检查了URL的访问类型以及用户是否已登录。
不使用MyT的配置
要使用此服务,请按照以下方式进行
$parametros = array('lista'=>'Juan:15,Pepito:1,Antonio:2',
'listaPSW'=>'Juan:fbaf40c551682f72e2261c95566dbfdcb7e00951,Pepito:pass2,Antonio:pass3',
'comodin'=>'a',
'acceso'=>0,
'session'=>'',
'cookie'=>'',
'fuenteacceso'=>'bbdd',
'datosfuente'=> 'usuarios:usuario:password:acceso');
$acceso = new mySegurata($parametros);
$acceso->visita($_POST['usuario'],$_POST['password']);
在这种情况下,您可以按需创建参数,但必须是这些参数,在fuenteacceso
参数中给定bbdd
值,这将导致在datosfuente
中搜索详细数据库。如果想要从配置文件中收集数据,则必须给出任何其他文本作为值。
这返回1表示允许访问,返回0表示不允许访问,因此需要在您的系统中创建管理这些响应所需的内容。