api: 登入帳號 add POST http://localhost/api/v2/tokens
This commit is contained in:
parent
b85296fdae
commit
79940445ea
@ -37,6 +37,100 @@ $app->get('/hello/:name', 'APIrequest', function ($name) use ($app) {
|
|||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
function login($user_id = null) {
|
||||||
|
$app = \Slim\Slim::getInstance();
|
||||||
|
|
||||||
|
if(!isset($user_id)) {
|
||||||
|
$user_id = $_POST['user_id'];
|
||||||
|
}
|
||||||
|
// 取得帶來的參數
|
||||||
|
$cType = $app->request->getContentType();
|
||||||
|
if($cType == 'application/x-www-form-urlencoded') {
|
||||||
|
$password = $_POST['password'];
|
||||||
|
$browser = isset($_POST['browser']) ? $_POST['browser'] : 'api';
|
||||||
|
}
|
||||||
|
else /*if($cType == 'application/json')*/ {
|
||||||
|
$postData = $app->request->getBody();
|
||||||
|
$postDataArray = json_decode($postData);
|
||||||
|
$password = $postDataArray->password;
|
||||||
|
$browser = isset($postDataArray->browser)
|
||||||
|
? $postDataArray->browser : 'api';
|
||||||
|
}
|
||||||
|
/*else {
|
||||||
|
$app->render(400, array(
|
||||||
|
'Content-Type'=> $cType,
|
||||||
|
'error' => true,
|
||||||
|
'msg' => '',
|
||||||
|
'msg_cht' => '輸入參數的Content-Type不在支援範圍內 或是沒有輸入',
|
||||||
|
'substatus' => 102
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// 進行登入
|
||||||
|
try {
|
||||||
|
$session = new User\UserSession();
|
||||||
|
$loginToken = $session->login($user_id, $password, $browser);
|
||||||
|
$user = $session->getUser($loginToken);
|
||||||
|
|
||||||
|
$app->render(201,array(
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'token' => $loginToken,
|
||||||
|
'browser' => $browser,
|
||||||
|
'user' => array(
|
||||||
|
'id' => $user->getId(),
|
||||||
|
'user_id' => $user->getId(),
|
||||||
|
'nickname' => $user->getNickName(),
|
||||||
|
'group_id' => $user->getGroupID(),
|
||||||
|
'group_name' => $user->getGroupName(),
|
||||||
|
'class_id' => $user->getClassId(),
|
||||||
|
'class_name' => $user->getClassName(),
|
||||||
|
'enable' => $user->isEnable(),
|
||||||
|
'build_time' => $user->getCreateTime(),
|
||||||
|
'modify_time' => $user->getModifyTime(),
|
||||||
|
'learnStyle_mode' => $user->getLearnStyle(),
|
||||||
|
'material_mode' => $user->getMaterialStyle(),
|
||||||
|
'enable_noAppoint' => $user->isEnableNoAppoint(),
|
||||||
|
'realname' => $user->getRealName(),
|
||||||
|
'email' => $user->getEmail(),
|
||||||
|
'memo' => $user->getMemo(),
|
||||||
|
),
|
||||||
|
'error' => false,
|
||||||
|
'msg' => '\''.$user_id.'\' is logined',
|
||||||
|
'msg_cht' => '\''.$user_id.'\'使用者已登入'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
catch (Exception\UserNoFoundException $e) {
|
||||||
|
$app->render(404,array(
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'browser' => $browser,
|
||||||
|
'error' => true,
|
||||||
|
'msg' => '\''.$user_id.'\' is not found',
|
||||||
|
'msg_cht' => '找不到\''.$user_id.'\'使用者'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
catch (Exception\UserPasswordErrException $e) {
|
||||||
|
$app->render(401,array(
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'browser' => $browser,
|
||||||
|
'error' => true,
|
||||||
|
'msg' => 'Input \''.$user_id.'\' password is wrong',
|
||||||
|
'msg_cht' => '\''.$user_id.'\'使用者密碼錯誤',
|
||||||
|
'substatus' => 201
|
||||||
|
));
|
||||||
|
}
|
||||||
|
catch (Exception\UserNoActivatedException $e) {
|
||||||
|
$app->render(401,array(
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'browser' => $browser,
|
||||||
|
'error' => true,
|
||||||
|
'msg' => '\''.$user_id.'\' is not enable',
|
||||||
|
'msg_cht' => '\''.$user_id.'\'帳號目前未啟用',
|
||||||
|
'substatus' => 202
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$app->group('/users', 'APIrequest', function () use ($app, $app_template) {
|
$app->group('/users', 'APIrequest', function () use ($app, $app_template) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -183,100 +277,18 @@ $app->group('/users', 'APIrequest', function () use ($app, $app_template) {
|
|||||||
* 登入帳號
|
* 登入帳號
|
||||||
* POST http://localhost/api/v2/users/{帳號ID}/login
|
* POST http://localhost/api/v2/users/{帳號ID}/login
|
||||||
*/
|
*/
|
||||||
$app->post('/:user_id/login', function ($user_id) use ($app) {
|
$app->post('/:user_id/login', 'login');
|
||||||
|
|
||||||
// 取得帶來的參數
|
|
||||||
$cType = $app->request->getContentType();
|
|
||||||
if($cType == 'application/x-www-form-urlencoded') {
|
|
||||||
$password = $_POST['password'];
|
|
||||||
$browser = isset($_POST['browser']) ? $_POST['browser'] : 'api';
|
|
||||||
}
|
|
||||||
else /*if($cType == 'application/json')*/ {
|
|
||||||
$postData = $app->request->getBody();
|
|
||||||
$postDataArray = json_decode($postData);
|
|
||||||
$password = $postDataArray->password;
|
|
||||||
$browser = isset($postDataArray->browser)
|
|
||||||
? $postDataArray->browser : 'api';
|
|
||||||
}
|
|
||||||
/*else {
|
|
||||||
$app->render(400, array(
|
|
||||||
'Content-Type'=> $cType,
|
|
||||||
'error' => true,
|
|
||||||
'msg' => '',
|
|
||||||
'msg_cht' => '輸入參數的Content-Type不在支援範圍內 或是沒有輸入',
|
|
||||||
'substatus' => 102
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// 進行登入
|
|
||||||
try {
|
|
||||||
$session = new User\UserSession();
|
|
||||||
$loginToken = $session->login($user_id, $password, $browser);
|
|
||||||
$user = $session->getUser($loginToken);
|
|
||||||
|
|
||||||
$app->render(201,array(
|
|
||||||
'user_id' => $user_id,
|
|
||||||
'token' => $loginToken,
|
|
||||||
'browser' => $browser,
|
|
||||||
'user' => array(
|
|
||||||
'id' => $user->getId(),
|
|
||||||
'user_id' => $user->getId(),
|
|
||||||
'nickname' => $user->getNickName(),
|
|
||||||
'group_id' => $user->getGroupID(),
|
|
||||||
'group_name' => $user->getGroupName(),
|
|
||||||
'class_id' => $user->getClassId(),
|
|
||||||
'class_name' => $user->getClassName(),
|
|
||||||
'enable' => $user->isEnable(),
|
|
||||||
'build_time' => $user->getCreateTime(),
|
|
||||||
'modify_time' => $user->getModifyTime(),
|
|
||||||
'learnStyle_mode' => $user->getLearnStyle(),
|
|
||||||
'material_mode' => $user->getMaterialStyle(),
|
|
||||||
'enable_noAppoint' => $user->isEnableNoAppoint(),
|
|
||||||
'realname' => $user->getRealName(),
|
|
||||||
'email' => $user->getEmail(),
|
|
||||||
'memo' => $user->getMemo(),
|
|
||||||
),
|
|
||||||
'error' => false,
|
|
||||||
'msg' => '\''.$user_id.'\' is logined',
|
|
||||||
'msg_cht' => '\''.$user_id.'\'使用者已登入'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
catch (Exception\UserNoFoundException $e) {
|
|
||||||
$app->render(404,array(
|
|
||||||
'user_id' => $user_id,
|
|
||||||
'browser' => $browser,
|
|
||||||
'error' => true,
|
|
||||||
'msg' => '\''.$user_id.'\' is not found',
|
|
||||||
'msg_cht' => '找不到\''.$user_id.'\'使用者'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
catch (Exception\UserPasswordErrException $e) {
|
|
||||||
$app->render(401,array(
|
|
||||||
'user_id' => $user_id,
|
|
||||||
'browser' => $browser,
|
|
||||||
'error' => true,
|
|
||||||
'msg' => 'Input \''.$user_id.'\' password is wrong',
|
|
||||||
'msg_cht' => '\''.$user_id.'\'使用者密碼錯誤',
|
|
||||||
'substatus' => 201
|
|
||||||
));
|
|
||||||
}
|
|
||||||
catch (Exception\UserNoActivatedException $e) {
|
|
||||||
$app->render(401,array(
|
|
||||||
'user_id' => $user_id,
|
|
||||||
'browser' => $browser,
|
|
||||||
'error' => true,
|
|
||||||
'msg' => '\''.$user_id.'\' is not enable',
|
|
||||||
'msg_cht' => '\''.$user_id.'\'帳號目前未啟用',
|
|
||||||
'substatus' => 202
|
|
||||||
));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$app->group('/tokens', 'APIrequest', function () use ($app, $app_template) {
|
$app->group('/tokens', 'APIrequest', function () use ($app, $app_template) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 登入帳號
|
||||||
|
* POST http://localhost/api/v2/tokens
|
||||||
|
*/
|
||||||
|
$app->post('/', 'login');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 取得已登入的帳號資訊
|
* 取得已登入的帳號資訊
|
||||||
* GET http://localhost/api/v2/tokens/{登入Token}
|
* GET http://localhost/api/v2/tokens/{登入Token}
|
||||||
@ -388,7 +400,7 @@ $app->group('/tokens', 'APIrequest', function () use ($app, $app_template) {
|
|||||||
* 取得可用的學習活動
|
* 取得可用的學習活動
|
||||||
* GET http://localhost/api/v2/tokens/{登入Token}/Activity
|
* GET http://localhost/api/v2/tokens/{登入Token}/Activity
|
||||||
*/
|
*/
|
||||||
$app->get('/:token/activity', function ($token) use ($app) {
|
$app->get('/:token/activitys', function ($token) use ($app) {
|
||||||
try {
|
try {
|
||||||
$session = new User\UserSession();
|
$session = new User\UserSession();
|
||||||
$user_id = $session->getUserId($token);
|
$user_id = $session->getUserId($token);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user