I'm on Shared Server.
Laravel v8.15.0 (PHP v7.3.23)
unable to set it up properly.
Sanctum & Passport both tried but that crashes with 500 Internal Server Error. So removed them.
https://townies.pk/api/v1/getCart is working. Another GET route for fetching Images is also working.
But https://townies.pk/api/register POST or https://townies.pk/api/v1/register POST not working. 500 Internal Server Error.
And https://townies.pk/api/login POST or https://townies.pk/api/v1/login POST not working. 500 Internal Server Error.
api.php
<?php
use App\Models\User;
use App\Http\Controllers\AuthController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Facades\DB;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
/*Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});*/
Route::get('/v1/getCart', function(Request $request){
return response()->json([
'success'=> true,
'msg'=> "yes",
'cartItems' => ['Beef Salaami Large: Rs. 780/-', 'Chicken Supreme Small: Rs. 290/-', 'Super Supreme Medium: Rs. 530/-' ]
])
->header('Content-Type', 'application/json');
});
Route::post('/v1/register', [AuthController::class, 'register'])->name('register');
Route::post('/v1/login', [AuthController::class, 'login'])->name('login');
AuthController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'password' => 'required'
]);
if($validator->fails())
{
Log::error('Something is really going wrong.');
return response()->json(['status_code' => 400, 'message' => 'Bad Request']);
}
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = algo($request->password);
$user->save();
return response()->json([
'status_code' => 201,
'message' => 'User Registration Successful.'
]);
}
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required'
]);
if($validator->fails())
{
return response()->json(['status_code' => 400, 'message' => 'Bad Request']);
}
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
{
return response()->json([
'status_code' => 401,
'message' => 'Unauthorised'
]);
}
$user = User::where('email', $request->email)->first();
$tokenResult = $user->createToken('authToken')->plaitTextToken;
return response()->json([
'status_code' => 200,
'token' => $tokenResult
]);
}
public function logout(Request $request)
{
$request->user()->currentAccessToken()->delete();
return response()->json([
'status_code' => 200,
'message' => 'LogOut Successful'
]);
}
}
My Database Schema