Apilerimi Mustafa Abinin tavsiyesi ve kullanımının bu şekilde daha doğru olacağını öğrendiğim için repository olarak oluşturmaya başladım. Apilerim de bir güvenlik sorunu oluşturabilecek bir şey yapmış mıyım acaba yada saçmaladığım bir kısım var mı şurası şöyle olmalıydı diyebileceğiniz
<?php
namespace App\Repositories\Backend\WebRegister;
use App\Models\Auth\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
class WebRegisterRepository implements RegisterRepository{
public function create(Request $request)
{
$userLogin = User::whereEmail($request->email)->first();
$registerData = $request->toArray();
if (is_null($userLogin)) {
$registerData['password'] = \Hash::make($request->input('password'));
$registerData['first_name'] = $request->input('first_name');
$registerData['last_name'] = $request->input('last_name');
$registerData['email'] = $request->input('email');
$registerData['confirmation_code'] = md5(uniqid(mt_rand(), true));
$registerData['expired_at'] = Carbon::now()->addDays(21);
$registerData['confirmed'] = 1;
$registerData['partner_token_id'] = 4;
$user = User::create($registerData);
$user->assignRole('business');
//token oluşturma ve gönderme
$user_id = $user->id;
$user = User::where('id', $user_id)->where('partner_token_id', 4)->first();
if ($user) {
auth()->shouldUse('api');
if ($request->remember_me) {
$token = auth()->setTTL(43200)->login($user);
} else {
$token = auth()->login($user);
}
if ($token) {
$user->update([
'last_login' => Carbon::now(),
'auth_key' => $token,
]);
$user->token = $token;
return response()->json([
'message' => 'Token Created Login can be done with this token.',
'data' => [
'token' => $user->token
],
'status' => true,
], 200);
}
}
} else {
try {
$user_id = $userLogin->id;
$user = User::where('id', $user_id)->where('partner_token_id', 4)->firstOrFail();
if ($user) {
auth()->shouldUse('api');
if ($request->remember_me) {
$token = auth()->setTTL(43200)->login($user);
} else {
$token = auth()->login($user);
}
if ($token) {
$user->update([
'last_login' => Carbon::now(),
'auth_key' => $token,
]);
$user->token = $token;
return response()->json([
'message' => 'The user already exists. Login can be done with token.',
'data' => [
'token' => $user->token
],
'status' => true,
], 200);
}
}
}
catch (\Exception $exception){
return response()->json([
'message' => 'Contact the System Administrator..',
'data' => [
'token' => null
],
'status' => false,
], 404);
}
}
}
}