userapp / widget
UserApp 的 PHP 用户小部件。
0.6.7
2014-08-07 04:15 UTC
Requires
- userapp/userapp: 1.*
README
将 UserApp PHP 客户端封装成一个小巧且用户友好的 API。
入门
查找您的 App Id
如果您还没有 UserApp 账户,您需要创建一个。
- App Id:App Id 识别您的应用。登录后,您应该会立即看到您的
App Id。如果您找不到它,请遵循此指南。
加载库
UserApp 依赖于 PHP 的自动加载功能在需要时加载其文件。自动加载遵循 PSR-0 标准,使其与大多数主要框架和库兼容。当使用 Composer 管理依赖项时,应用程序中的自动加载会自动处理。
使用 Composer?将以下内容添加到您的 composer.json
{
"require": {
"userapp/widget": "~0.6.3"
}
}
不使用 Composer?使用库自身的自动加载器
require 'autoload.php';
示例
bootstrap.php
<?php
use \UserApp\Widget\User;
// Import composer autoloader
require_once('vendor/autoload.php');
User::setAppId("YOUR APP ID");
must_authenticate.php
<?php
use \UserApp\Widget\User;
require_once('bootstrap.php');
User::onUnauthorized(function ($sender, $call_context, $error){
header('Location: /login.php');
die();
});
login.php
<?php
use \UserApp\Widget\User;
require_once('bootstrap.php');
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$redirect_to = 'login.php?error=INVALID_CREDENTIALS';
if(User::login($_POST['username'], $_POST['password'])){
$redirect_to = 'user/profile.php';
}
header('Location: /' . $redirect_to);
die();
}
?>
<form method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<? if(isset($_GET['error']) && $_GET['error'] == 'INVALID_CREDENTIALS'){ ?>
* Invalid username or password<br />
<? } ?>
<input type="submit" value="Log in" />
</form>
user/profile.php
<?php
use \UserApp\Widget\User;
require_once('../must_authenticate.php');
$user = User::current();
?>
User id: <?= $user->user_id ?><br /><br />
Username: <?= ($user->login ?: '(not specified)') ?><br />
First name: <?= ($user->first_name ?: '(not specified)') ?><br />
Last name: <?= ($user->last_name ?: '(not specified)') ?><br />
Email: <?= ($user->email ?: '(not specified)') ?><br />
<a href="logout.php">Logout</a>
user/logout.php
<?php
use \UserApp\Widget\User;
require_once('../must_authenticate.php');
$user = User::current();
$user->logout();
header('Location: ../login.php');
API
登录
bool User::login($username, $password)
使用令牌登录
bool User::loginWithToken($token)
注册新用户
bool User::signup($username, $password, $email = null, $first_name = null, $last_name = null, $auto_login = true)
检查用户是否已认证
bool User::authenticated()
获取当前已认证的用户
User User::current()
示例
$user = User::current();
$user->logout();
读取用户的属性
$user->user_id
$user->properties->age->value
支持的属性
- 字符串 user_id
- 字符串 first_name
- 字符串 last_name
- 字符串 email
- 字符串 login
- 对象属性
- 对象功能
- 对象权限
- 数组 锁定
- 字符串 ip_address
- 整数 last_login_at
- 整数 updated_at
- 整数 created_at
检查用户是否有权限
bool $user->hasPermission($permission_name)
检查用户是否有功能
bool $user->hasFeature($feature_name)
保存用户更改
void $user->save()
示例
$user->first_name = 'John';
$user->last_name = 'Johnsson';
$user->properties->my_own_property = 'some value';
$user->save();
用户登出
void $user->logout()
未经授权时的回调
void onUnauthorized(closure($sender, $call_context, $error))
示例
User::onUnauthorized(function($sender, $call_context, $error){
header('Location: /login.php');
die();
});
许可证
MIT