PHP code example of lzpeng / think-auth
1. Go to this page and download the library: Download lzpeng/think-auth library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lzpeng / think-auth example snippets
return [
'default' => 'test1', // 默认使用的认证器标识
'test1' => [ // 认证器标识
'driver' => 'session', // 认证器驱动; 内置支持session和simpleToken
'sessionKey' => 'UserIdentity', // 会话key
'provider' => [ // 认证所使用的用户提供器
'driver' => 'model', // 用户提供器驱动; 内置支持model和database
'modelClass' => 'app\common\model\User', // 模型类; 需要实现Lzpeng\Auth\Contracts\UserIdentity接口
'idKey' => 'id', // 模型对应的用户标识属性名称; 可选; 默认为'id'
'passwordKey' => 'password', // 用户凭证数组里的密码key; 可选; 默认为'password'
'forceValidatePassword' => true, // 是否强制验证密码; 如果是ture但没传入密码凭证,凭证就验证失败; false的话不传密码凭证就忽略密码凭证的验证; 可选; 默认为true
'hasher' => [
'driver' => 'bcrypt', // 密码hasher; 内置只支持bcrypt
// 'driver' => '\test\HMacHasher' // 只支持自定义driver; 需实现Lzpeng\Auth\Contracts\Hasher接口
// 'algo' => 'md5',
// 'salt' => 'xxxxxx',
]
],
// 以下是simpleToken认证器配置例子
// 'driver' => 'simpleToken',
// 'tokenKey' => 'User-Token', // token名称
// 'cache' => [ // 缓存配置; 支持thinkphp的缓存配置 可选; 不设置使用框架的cache配置;
// 'type' => 'File',
// 'path' => '',
// 'prefix' => '',
// 'expire' => 1200,
// ],
// 以下的database用户提供器配置例子
// 'provider' => [
// 'driver' => 'database',
// 'table' => 'user',
// 'passwordKey' => 'password', // 用户凭证数组里的密码key; 可选; 默认为'password'
// 'forceValidatePassword' => true, // 是否强制验证密码; 如果是ture但没传入密码凭证,凭证就验证失败; false的话不传密码凭证就忽略密码凭证的验证; 可选; 默认为true
// 'hasher' => [
// 'driver' => 'bcrypt', // 密码hasher; 内置只支持bcrypt
// ]
// ]
'behaviors' => [ // 认证过程中的行为绑定; 实现了AuthBehavior接口
'login_before' => [
'app\behaivor\checkAttempt',
],
'login_success' => [],
'login_failure' => [],
'logout_before' => [],
'logout_after' => [],
]
],
'test2' => [
...
],
]
use Lzpeng\Auth\Auth;
use Lzpeng\Auth\Exceptions\AuthenticationException;
try {
$result = Auth::login(['username' => 'test', 'password' => 'password']);
// session认证器,$result返回为null
// simpleToken认证器,$result返回为token, 用于返回给客户端
// 认证成功处理逻辑
} catch (AuthenticationException $ex) {
// 异常处理
}
try {
$user = fromOtherSystem($id);
$result = Auth::setUser($user);
// 认证成功处理逻辑
} catch (AuthenticationException $ex) {
// 异常处理
}
if (Auth::isLogined()) {
// 用户已认证登录
}
$id = Auth::getId(); // 如果未认证登录将返回null
$user = Auth::getUser(); // 如果未认证登录将返回null
Auth::logout();
Auth::make('test1')->login(['username' => 'xxx', 'password' = 'xxx']);
Auth::make('test2')->login(['admin' => 'xxx', 'password' => 'xxxx]);
$user = Auth::make('test1')->getUser();
$admin = Auth::make('test2')->getUser();