api/src/users.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
use Codeages\Biz\Framework\Event\Event;
use Topxia\Api\Util\UserUtil;
use Topxia\Service\Common\ServiceKernel;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Common\Exception\RuntimeException;
use AppBundle\Common\Exception\ResourceNotFoundException;
use AppBundle\Common\Exception\InvalidArgumentException;
$api = $app['controllers_factory'];
/*
## 登录
POST /users/login
** 参数 **
| 名称 | 类型 | 必需 | 说明 |
| ---- | ----- | ----- | ---- |
| nickname | string | 是 | 昵称 |
| password | string | 是 | 密码 |
** 响应 **
```
{
"xxx": "xxx"
}
```
*/
$api->post('/login', function (Request $request) {
$fields = $request->request->all();
$user = ServiceKernel::instance()->createService('User:UserService')->getUserByLoginField($fields['nickname']);
if (empty($user)) {
throw new ResourceNotFoundException('User', $fields['nickname']);
}
if (!ServiceKernel::instance()->createService('User:UserService')->verifyPassword($user['id'], $fields['password'])) {
throw new RuntimeException('password error');
}
$token = ServiceKernel::instance()->createService('User:UserService')->makeToken('mobile_login', $user['id']);
setCurrentUser($user);
return array(
'user' => filter($user, 'user'),
'token' => $token
);
}
);
/*
## 第三方登录
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。