我想获得PHP方面的经验,所以我开始关注我自己的RESTful API服务器。我阅读了REST,地址应该是什么样子,HTTP谓词状态代码存在什么。我的朋友正在使用客户端(Android,Java),而我则使用服务器端。
对于第一阶段,我必须进行认证和注册。我不知道如何获取数据,但我的代码应该验证用户名和密码,然后将这些值与数据库进行比较。最后,如果用户存在,它必须接收一个令牌,据我了解,该令牌必须用于访问我的API的其他方法。这就是我遇到的问题:
<?php
require __DIR__ . '/auth.php';
class Handler extends DbConn
{
public function isValidUser($login,$password_hash)
{
$sql = 'SELECT 1 FROM users WHERE name = :name AND password_hash = :password_hash';
$stmt = $this->pdo->prepare($sql);
$stmt->bindValue(':name',$login);
$stmt->bindValue(':password_hash',$password_hash);
$stmt->execute();
$row = $stmt->fetchColumn();
if ($row == 1)
{
$this->getCurrentToken($login);
} else {
$this->createUser();
}
}
protected function getCurrentToken($login)
{
$sql = 'SELECT api_key FROM users WHERE name = :name';
$stmt = $this->pdo->prepare($sql);
$stmt->bindValue(':name',$login);
$stmt->execute();
$row = $stmt->fetchColumn();
}
}
?>这只是一个模板,可能存在一些错误。我不知道下一步该怎么办。理论上,我知道我必须给用户一个令牌,但是您是如何做到的呢?如何创建服务器的响应?如何使用json将数据从服务器传输到客户端?
我知道理论上应该如何运作,但我在实践中遇到了困难。我不希望有一个详细的解释,我只是想要理解的意义,了解什么算法。我应该读什么材料?有人能给我关于上面的代码的建议吗,例如我应该添加到类中的方法的一个例子。
而且,考虑到它是API,它必须为浏览器和移动应用程序提供不同的工作方式。伙计们,希望你们能给我一些有用的建议。谢谢大家的关注。
发布于 2016-01-04 14:57:55
如果客户端使用POST(即android中的HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); )调用服务器,那么用户在$_POST上发布的所有数据都会被发送给您。
如果你是rest的新手,不要在这个级别上弄乱数据库,只需创建页面即可。
<?php
echo json_encode($_POST);
?>并从客户端调用它,您将得到进一步的路径:)
https://stackoverflow.com/questions/34593585
复制相似问题