Why don't you use tokens with API? What are you trying to achieve?
Nov 11, 2021
2
Level 1
How to make Laravel login api default session
Actually, I have made login and registration API, now I want to make the Laravel login session live. But I am unable to manage the Laravel login API default session. How can I solve this problem?
Level 61
Level 1
I am trying to achieve login with session and logout session if the session expires then in the project after any action project will display a logout page.
Here is my login and registration function:
public function login(Request $request) { $validator = Validator::make($request->all(),[ 'user_id' => ['required'], 'user_token' => ['required'], 'project_token' => ['required'], ]);
if ($validator->fails()){
return response()->json([
'success' => false,
'errors' => $validator->errors()->toArray()
]);
}
$project_user_token = DB::table('users')
->where('user_id', $request->user_id)
->where('user_token',$request->user_token)
->where('project_token',$request->project_token)
->get()
->toArray();
if($project_user_token){
return response()->json([
'success' => 'true',
]);
}else{
return response()->json([
'success' => 'false',
'reason' => 'Your user id, user token or project token invalid!',
], 401);
}
}
public function register(Request $request)
{
$validator = Validator::make($request->all(),[
'name' => ['required','string','max:255'],
'email' => ['required','string', 'email', 'max:255', 'unique:users'],
'user_id' => ['required','integer','unique:users'],
'bussiness_url' => ['required'],
'listing_limit' => ['required'],
'start_date' => ['required'],
'expire_date' => ['required'],
'user_token' => ['required','string','unique:users'],
]);
if ($validator->fails()){
return response()->json([
'success' => false,
'errors' => $validator->errors()->toArray()
]);
}
try{
$data = array();
$data['user_id'] = $request->user_id;
$data['name'] = $request->name;
$data['email'] = $request->email;
$data['bussiness_name'] = $request->bussiness_name;
$data['bussiness_url'] = $request->bussiness_url;
$data['listing_limit'] = $request->listing_limit;
$data['start_date'] = date("Y-m-d H:i:s", strtotime($request->start_date)) ?? null;
$data['expire_date'] = date("Y-m-d H:i:s", strtotime($request->expire_date)) ?? null;
$data['user_token'] = $request->user_token;
$token = Str::random(60);
$data['project_token'] = hash('sha256', $token);
DB::table('users')->Insert($data);
$user = DB::table('users')->where('email',$data['email'])->first();
return response()->json([
'success' => 'true',
'project_token' => $user->project_token,
'login_url' => 'https://woowms.com/dev-master-wms',
]);
}catch(Exception $e){
return response()->json([
'success' => 'false',
'errors' => $e->getMessage(),
]);
}
}
Please or to participate in this conversation.