validate([ 'email' => 'required|email', 'password' => 'required', 'name' => 'required' ]); $user = User::where('email', $creds['email'])->first(); if ($user) { return response(['error' => 1, 'message' => 'user already exists'], 409); } $user = User::create([ 'email' => $creds['email'], 'password' => Hash::make($creds['password']), 'name' => $creds['email'] ]); $default_user_role_id = Option::where('key', 'default_role_id')->first()->value; UserRole::create([ 'user_id'=>$user->id, 'role_id'=>$default_user_role_id ]); return $user; } /** * Authenticate an user and dispatch token. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function login(Request $request) { $creds = $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $creds['email'])->first(); if (!$user || !Hash::check($request->password, $user->password)) { return response(['error' => 1, 'message' => 'invalid credentials'], 401); } if (Option::where('key', 'single_session')->first()->value == '1') { $user->tokens()->delete(); } $roles = $user->roles()->get(); $_roles = []; foreach($roles as $role){ $_roles[] = $role->slug; } return $user->createToken('hydra-api-token',$_roles)->plainTextToken; } /** * Display the specified resource. * * @param \App\Models\User $user * @return \Illuminate\Http\Response */ public function show(User $user) { // } /** * Show the form for editing the specified resource. * * @param \App\Models\User $user * @return \Illuminate\Http\Response */ public function edit(User $user) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\User $user * @return \Illuminate\Http\Response */ public function update(Request $request, User $user) { // } /** * Remove the specified resource from storage. * * @param \App\Models\User $user * @return \Illuminate\Http\Response */ public function destroy(User $user) { // } }