mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-01 04:04:47 -04:00
User login via API
This commit is contained in:
parent
f82aaefd4c
commit
72dee9bfb6
@ -2,16 +2,19 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\BaseController;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Libraries\OAuth;
|
use App\Libraries\OAuth;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Transformers\UserTransformer;
|
||||||
use App\Utils\Traits\UserSessionAttributes;
|
use App\Utils\Traits\UserSessionAttributes;
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Laravel\Socialite\Facades\Socialite;
|
use Laravel\Socialite\Facades\Socialite;
|
||||||
|
|
||||||
class LoginController extends Controller
|
class LoginController extends BaseController
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -27,6 +30,10 @@ class LoginController extends Controller
|
|||||||
use AuthenticatesUsers;
|
use AuthenticatesUsers;
|
||||||
use UserSessionAttributes;
|
use UserSessionAttributes;
|
||||||
|
|
||||||
|
protected $entity_type = User::class;
|
||||||
|
|
||||||
|
protected $entity_transformer = UserTransformer::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Where to redirect users after login.
|
* Where to redirect users after login.
|
||||||
*
|
*
|
||||||
@ -41,7 +48,8 @@ class LoginController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function __construct()
|
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);
|
$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;
|
namespace App\Providers;
|
||||||
|
|
||||||
use App\Libraries\MultiDB;
|
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 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
|
class MultiDatabaseUserProvider implements UserProvider
|
||||||
{
|
{
|
||||||
@ -108,14 +108,20 @@ class MultiDatabaseUserProvider implements UserProvider
|
|||||||
*/
|
*/
|
||||||
public function retrieveByCredentials(array $credentials)
|
public function retrieveByCredentials(array $credentials)
|
||||||
{
|
{
|
||||||
|
Log::error('retrieving by credentials');
|
||||||
if (empty($credentials) ||
|
if (empty($credentials) ||
|
||||||
(count($credentials) === 1 &&
|
(count($credentials) === 1 &&
|
||||||
array_key_exists('password', $credentials))) {
|
array_key_exists('password', $credentials))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log::error('settings DB');
|
||||||
|
|
||||||
$this->setDefaultDatabase(false, $credentials['email'], false);
|
$this->setDefaultDatabase(false, $credentials['email'], false);
|
||||||
|
|
||||||
|
Log::error('set DB');
|
||||||
|
|
||||||
|
|
||||||
// First we will add each credential element to the query as a where clause.
|
// 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
|
// 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.
|
// Eloquent User "model" that will be utilized by the Guard instances.
|
||||||
@ -132,7 +138,7 @@ class MultiDatabaseUserProvider implements UserProvider
|
|||||||
$query->where($key, $value);
|
$query->where($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Log::error($query->count());
|
||||||
return $query->first();
|
return $query->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,9 +150,10 @@ class MultiDatabaseUserProvider implements UserProvider
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateCredentials(UserContract $user, array $credentials)
|
public function validateCredentials(UserContract $user, array $credentials)
|
||||||
{
|
{ Log::error('validateCredentials');
|
||||||
$plain = $credentials['password'];
|
|
||||||
|
|
||||||
|
$plain = $credentials['password'];
|
||||||
|
Log::error($plain);
|
||||||
return $this->hasher->check($plain, $user->getAuthPassword());
|
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
|
private function setDefaultDatabase($id = false, $email = false, $token = false) : void
|
||||||
{
|
{
|
||||||
|
Log::error('setting DB');
|
||||||
foreach (MultiDB::getDbs() as $database) {
|
foreach (MultiDB::getDbs() as $database) {
|
||||||
$this->setDB($database);
|
$this->setDB($database);
|
||||||
|
|
||||||
@ -225,6 +232,7 @@ class MultiDatabaseUserProvider implements UserProvider
|
|||||||
$user = $query->get();
|
$user = $query->get();
|
||||||
|
|
||||||
if (count($user) >= 1) {
|
if (count($user) >= 1) {
|
||||||
|
Log::error('found user, settings DB for EMAIL');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +240,8 @@ class MultiDatabaseUserProvider implements UserProvider
|
|||||||
|
|
||||||
if ($token)
|
if ($token)
|
||||||
{
|
{
|
||||||
|
Log::error('found user, settings DB for TOKEN');
|
||||||
|
|
||||||
$query->whereRaw("BINARY `token`= ?", $token);
|
$query->whereRaw("BINARY `token`= ?", $token);
|
||||||
|
|
||||||
$token = $query->get();
|
$token = $query->get();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user