outermedia / pdo-authenticator
通用的PDO认证
v1.0.2
2016-04-19 12:30 UTC
Requires
- php: >=5.5.9
Requires (Dev)
- phpunit/dbunit: >=1.2
- phpunit/phpunit: 5.3.*
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"标志指示成功。