mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
User login via API
This commit is contained in:
parent
f82aaefd4c
commit
72dee9bfb6
@ -2,16 +2,19 @@
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\BaseController;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Libraries\OAuth;
|
||||
use App\Models\User;
|
||||
use App\Transformers\UserTransformer;
|
||||
use App\Utils\Traits\UserSessionAttributes;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
class LoginController extends Controller
|
||||
class LoginController extends BaseController
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -27,6 +30,10 @@ class LoginController extends Controller
|
||||
use AuthenticatesUsers;
|
||||
use UserSessionAttributes;
|
||||
|
||||
protected $entity_type = User::class;
|
||||
|
||||
protected $entity_transformer = UserTransformer::class;
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
@ -41,7 +48,8 @@ class LoginController extends Controller
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest:user')->except('logout');
|
||||
parent::__construct();
|
||||
// $this->middleware('guest:user')->except('logout');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,12 +67,11 @@ class LoginController extends Controller
|
||||
{
|
||||
$this->validateLogin($request);
|
||||
|
||||
if ($this->attemptLogin($request)) {
|
||||
if ($this->attemptLogin($request))
|
||||
return $this->itemResponse($this->guard()->user());
|
||||
else
|
||||
return response()->json(['message' => ctrans('texts.invalid_credentials')]);
|
||||
|
||||
return $this->authenticated($request, $this->guard()->user())
|
||||
?: response()->json(['message' => ctrans('texts.invalid_credentials')]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,12 +3,12 @@
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Libraries\MultiDB;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Contracts\Auth\UserProvider;
|
||||
use Illuminate\Contracts\Support\Arrayable;
|
||||
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
|
||||
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
|
||||
use PhpParser\Node\Expr\BinaryOp\Mul;
|
||||
use Illuminate\Contracts\Auth\UserProvider;
|
||||
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
|
||||
use Illuminate\Contracts\Support\Arrayable;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class MultiDatabaseUserProvider implements UserProvider
|
||||
{
|
||||
@ -108,14 +108,20 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
*/
|
||||
public function retrieveByCredentials(array $credentials)
|
||||
{
|
||||
Log::error('retrieving by credentials');
|
||||
if (empty($credentials) ||
|
||||
(count($credentials) === 1 &&
|
||||
array_key_exists('password', $credentials))) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log::error('settings DB');
|
||||
|
||||
$this->setDefaultDatabase(false, $credentials['email'], false);
|
||||
|
||||
Log::error('set DB');
|
||||
|
||||
|
||||
// First we will add each credential element to the query as a where clause.
|
||||
// Then we can execute the query and, if we found a user, return it in a
|
||||
// Eloquent User "model" that will be utilized by the Guard instances.
|
||||
@ -132,7 +138,7 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
$query->where($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
Log::error($query->count());
|
||||
return $query->first();
|
||||
}
|
||||
|
||||
@ -144,9 +150,10 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
* @return bool
|
||||
*/
|
||||
public function validateCredentials(UserContract $user, array $credentials)
|
||||
{
|
||||
$plain = $credentials['password'];
|
||||
{ Log::error('validateCredentials');
|
||||
|
||||
$plain = $credentials['password'];
|
||||
Log::error($plain);
|
||||
return $this->hasher->check($plain, $user->getAuthPassword());
|
||||
}
|
||||
|
||||
@ -210,7 +217,7 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
|
||||
private function setDefaultDatabase($id = false, $email = false, $token = false) : void
|
||||
{
|
||||
|
||||
Log::error('setting DB');
|
||||
foreach (MultiDB::getDbs() as $database) {
|
||||
$this->setDB($database);
|
||||
|
||||
@ -225,6 +232,7 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
$user = $query->get();
|
||||
|
||||
if (count($user) >= 1) {
|
||||
Log::error('found user, settings DB for EMAIL');
|
||||
break;
|
||||
}
|
||||
|
||||
@ -232,7 +240,8 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
|
||||
if ($token)
|
||||
{
|
||||
|
||||
Log::error('found user, settings DB for TOKEN');
|
||||
|
||||
$query->whereRaw("BINARY `token`= ?", $token);
|
||||
|
||||
$token = $query->get();
|
||||
|
Loading…
x
Reference in New Issue
Block a user