58 lines
1.4 KiB
PHP
58 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace app\services;
|
|
|
|
use app\models\UserPublic;
|
|
|
|
class Auth
|
|
{
|
|
|
|
/**
|
|
* @return \app\models\UserPublic|null
|
|
*/
|
|
public static function getUser()
|
|
{
|
|
if (isset($_SESSION['public_user']))
|
|
return UserPublic::find()->where(['email' => $_SESSION['public_user']])->one();
|
|
return null;
|
|
}
|
|
|
|
public static function checkUserExists($user)
|
|
{
|
|
$exists = UserPublic::find()->where(['email' => $user])->one();
|
|
|
|
if (!$exists) {
|
|
header('Location: ' . \Yii::$app->params['portal']);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
public static function setUser($username = null)
|
|
{
|
|
if ($username) {
|
|
$_SESSION['public_user'] = $username;
|
|
} else {
|
|
if (!empty($_SESSION['public_user'])) {
|
|
unset($_SESSION['public_user']);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static function getUserByToken($get_token = null)
|
|
{
|
|
if ($get_token) {
|
|
$token = $get_token;
|
|
} else {
|
|
$headers = getallheaders();
|
|
$token = !empty($headers['Auth']) && $headers['Auth'] != 'undefined' ? $headers['Auth'] : null;
|
|
}
|
|
if ($token) {
|
|
$decode = JWT::decode($token, JWT::SECRET_KEY);
|
|
if ($decode->id) {
|
|
return UserPublic::findOne($decode->id);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|