You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.6 KiB
95 lines
2.6 KiB
2 years ago
|
<?php
|
||
|
|
||
|
namespace App\Http\Controllers;
|
||
|
|
||
|
use Illuminate\Support\Facades\Auth;
|
||
|
use Illuminate\Http\Request;
|
||
|
|
||
|
use App\Models\User;
|
||
|
use App\Models\Role;
|
||
|
use App\Models\Project;
|
||
|
use App\Models\UserProject;
|
||
|
|
||
|
class AuthController extends Controller
|
||
|
{
|
||
|
/**
|
||
|
* Create a new AuthController instance.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __construct()
|
||
|
{
|
||
|
$this->middleware('auth:api', ['except' => ['login']]);
|
||
|
}
|
||
|
|
||
|
public function login(Request $request)
|
||
|
{
|
||
|
$username = $request->username;
|
||
|
$password = $request->password;
|
||
|
$is_mobile = $request->is_mobile;
|
||
|
|
||
|
if(empty($username) || empty($password)){
|
||
|
return response()->json(['status'=>'error','message'=>'You must fill all the fields'], 400);
|
||
|
}
|
||
|
|
||
|
$credentials = array(
|
||
|
"username"=> $username,
|
||
|
"password"=> md5($password)
|
||
|
);
|
||
|
|
||
|
$user = User::where('username', $username)->where('password', md5($password))
|
||
|
->first();
|
||
|
|
||
|
if($is_mobile){
|
||
|
$fcm_token = $request->fcm_token;
|
||
|
|
||
|
if(!$fcm_token || $fcm_token==""){
|
||
|
return response()->json(['status'=>'error','message'=>'FCM Token is required'], 400);
|
||
|
die();
|
||
|
}
|
||
|
|
||
|
$dataUpdateFcm = array(
|
||
|
"fcm_token"=>$fcm_token
|
||
|
);
|
||
|
|
||
|
$hr = User::find($user->id);
|
||
|
|
||
|
if($hr){
|
||
|
$result = $hr->update($dataUpdateFcm);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$dataRole = Role::find($user->role_id);
|
||
|
|
||
|
if($dataRole){
|
||
|
$user->role = $dataRole;
|
||
|
}
|
||
|
|
||
|
// if($user->role_id!=1){
|
||
|
// $dataProject = UserProject::where('user_id', $user->id)->first();
|
||
|
// if($dataProject){
|
||
|
// $user->project = $dataProject;
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
if (! $token =Auth::login($user)) {
|
||
|
return response()->json(['error' => 'Unauthorized'], 401);
|
||
|
}
|
||
|
|
||
|
return $this->respondWithToken($token, $user);
|
||
|
}
|
||
|
|
||
|
protected function respondWithToken($token, $user)
|
||
|
{
|
||
|
return response()->json([
|
||
|
'code' => 200,
|
||
|
'data' => array(
|
||
|
'data_user' => $user,
|
||
|
'access_token' => $token,
|
||
|
'token_type' => 'bearer',
|
||
|
'expires_in' => auth()->factory()->getTTL() * 60
|
||
|
),
|
||
|
]);
|
||
|
}
|
||
|
}
|