Files
old-wiaas-legacy/api-wiaas/server/components/v2/login/LoginController.php
2018-06-11 11:09:35 +02:00

85 lines
2.6 KiB
PHP

<?php
class LoginController{
private $model;
function __construct(){
$this->model = new LoginModel();
}
/**
* get JWT Token for app
* @return json token
*/
public function getToken(){
global $user;
if(isset($_POST['login'])){
$login = $user->login($_POST['username'], $_POST['password'], true);
$login['userInfo'] = $user->getUserInfo();
$login['serverTime'] = time();
echo json_encode($login);
}else{
echo json_encode(['status' => 'fail', 'errorMessage' => 'invalid request']);
}
}
/**
* validate the token
* @return json status => status for token validation, errorMessage => error message
*/
public function validateToken(){
global $user;
if($user->isLoggedIn()){
$refreshToken = $user->getRefreshToken();
$message = ['status' => 'success', 'userInfo' => $user->getUserInfo(), 'refreshToken' => $refreshToken, 'serverTime' => time()];
}else{
$message = ['status' => 'fail', 'errorMessage' => $user->getErrorMessage()];
}
echo json_encode($message);
}
public function refreshToken(){
global $user;
$refreshToken = isset($_REQUEST['refreshToken']) ? $_REQUEST['refreshToken'] : '';
$lastActivity = isset($_REQUEST['lastActivity']) ? $_REQUEST['lastActivity'] : '1000';
$message = $user->refreshToken($refreshToken, $lastActivity);
$message['serverTime'] = time();
$message['userInfo'] = $user->getUserInfo();
echo json_encode($message);
}
/**
* get allowed modues for user type
* @return json modules array
*/
public function getModules(){
global $user, $route;
if($user->isLoggedIn()){
echo json_encode(['modules' => $route::getModules()]);
}else{
echo json_encode(['modules' => []]);
}
}
/**
* generate new token for user
* @return json update message
*/
public function forgotPassword(){
$mail = isset($_POST['mail']) ? $_POST['mail'] : '';
echo json_encode($this->model->forgotPassword($mail));
}
public function changePassword(){
$token = isset($_REQUEST['token']) ? $_REQUEST['token'] : '';
$passwords = [
'newPassword' => isset($_REQUEST['newPassword']) ? $_REQUEST['newPassword'] : '',
'confirmPassword' => isset($_REQUEST['confirmPassword']) ? $_REQUEST['confirmPassword'] : ''
];
echo json_encode($this->model->changePassword($token, $passwords));
}
}
?>