outermedia/pdo-authenticator

通用的PDO认证

v1.0.2 2016-04-19 12:30 UTC

This package is not auto-updated.

Last update: 2024-09-26 00:37:09 UTC


README

基于PDO的通用PHP认证器,用于检查登录。

##安装

首先在您的计算机上安装或下载composer.phar。遵循getcomposer.org提供的说明。

步骤1:下载项目

创建一个中间目录,进入它并下载不带测试的最新发行版

php ~/php/composer.phar --prefer-dist require outermedia/pdo-authenticator

这将创建当前工作目录中的文件

├── composer.json
├── composer.lock
└── vendor
    │   ...
    └── outermedia
        └── pdo-authenticator
            ├── LICENSE
            ├── README.md
            ├── composer.json
            ├── composer.lock
            └── src
                └── main
                    └── webapp
                        ├── Om
                        │   └── Pdo
                        │       └── Authenticator
                        │           ├── DatabaseConfiguration.php
                        │           ├── DatabaseQueryBuilder.php
                        │           ├── PdoAuthenticator.php
                        │           └── RequestHandler.php
                        ├── dbconf.php.template
                        └── index.php

提示:如果您想运行phpunit测试,请额外运行(创建新的目录pdo-authenticator/)

php ~/php/composer.phar --prefer-source create-project outermedia/pdo-authenticator
pushd pdo-authenticator && vendor/bin/phpunit src/test/php/ && popd

注意:dbunit测试需要sqlite3。

###步骤2:部署文件

现在将文件复制到您的目标目录($DEST)

cp -r vendor/outermedia/pdo-authenticator/src/main/webapp/* $DEST

步骤3:重命名数据库设置模板

重命名文件dbconf.php.template

mv $DEST/dbconf.php.template $DEST/dbconf.php

步骤4:设置您的数据库选项

编辑dbconf.php。

选项有

  • pdoUrl - 一个PDO连接URL,例如,对于本地mysql和一个名为dbname1的数据库 "mysql:host=localhost;dbname=dbname1"
  • dbUser - 用于数据库连接的用户名
  • dbPassword - 用于数据库连接的密码
  • table - 包含用户信息的数据库表名
  • usernameColumn - 存储用户名(在table中)的列名
  • passwordColumn - 存储用户密码(在table中)的列名

步骤5:测试您的安装

支持两种POST操作

a) 获取一个用户的盐("user1"):使用指定的字符集对表单参数进行编码!

curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
    --data 'action=getsalt&login=user1' https:///pdo-auth/index.php

应该返回类似以下内容

{"charset":"latin1","result":true,"salt":"$1$rasmusl1"}

数据库表使用的字符集,盐和成功标志("result")。

b) 检查一个用户的登录:pwd是计算出的哈希。

curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
    --data 'action=login&login=user1&pwd=$1$rasmusl1$2ASuKCrDVFQspP8.yIzVl.' \
    https:///pdo-auth/index.php

预期的回答是例如

{"charset":"latin1","result":true}

"result"标志指示成功。