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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。