mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Working on API Login Authentication
This commit is contained in:
parent
f03da9d02d
commit
788a42e9a4
@ -79,7 +79,7 @@ class LoginController extends Controller
|
||||
{
|
||||
Auth::login($user, true);
|
||||
|
||||
return redirect($this->redirectTo);
|
||||
return redirect($this->redirectTo); //todo return USERACCOUNT json
|
||||
}
|
||||
|
||||
//throw error
|
||||
|
@ -27,9 +27,7 @@ class TokenAuth
|
||||
}
|
||||
else {
|
||||
|
||||
$error['error'] = ['message' => 'Invalid token'];
|
||||
|
||||
return response()->json(json_encode($error, JSON_PRETTY_PRINT) ,403);
|
||||
return response()->json(json_encode(['message' => 'Invalid token'], JSON_PRETTY_PRINT) ,403);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
|
@ -80,7 +80,18 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||
*/
|
||||
public function tokens()
|
||||
{
|
||||
return $this->hasMany(CompanyToken::class)->orderBy('id');
|
||||
return $this->hasMany(CompanyToken::class)->orderBy('id', 'ASC');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return first user token
|
||||
*
|
||||
* @return token object
|
||||
*/
|
||||
public function token()
|
||||
{
|
||||
return $this->tokens()->first();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -216,23 +216,32 @@ class MultiDatabaseUserProvider implements UserProvider
|
||||
|
||||
$query = $this->conn->table('users');
|
||||
|
||||
if ($id) {
|
||||
if ($id)
|
||||
$query->where('id', '=', $id);
|
||||
}
|
||||
|
||||
if ($token) {
|
||||
$query->where('token', '=', $token);
|
||||
}
|
||||
|
||||
if ($email) {
|
||||
if ($email)
|
||||
$query->where('email', '=', $email);
|
||||
}
|
||||
|
||||
$user = $query->get();
|
||||
|
||||
if (count($user) >= 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
$query = $this->conn->table('company_tokens');
|
||||
|
||||
if ($token)
|
||||
{
|
||||
|
||||
$query->whereRaw("BINARY `token`= ?", $token);
|
||||
|
||||
$token = $query->get();
|
||||
|
||||
if (count($token) >= 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
45
app/Transformers/CompanyTokenTransformer.php
Normal file
45
app/Transformers/CompanyTokenTransformer.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Transformers;
|
||||
|
||||
use App\Models\CompanyToken;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
/**
|
||||
* Class CompanyTokenTransformer.
|
||||
*/
|
||||
class CompanyTokenTransformer extends EntityTransformer
|
||||
{
|
||||
use MakesHash;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $defaultIncludes = [
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $availableIncludes = [
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @param CompanyToken $company_token
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function transform(CompanyToken $company_token)
|
||||
{
|
||||
return [
|
||||
'id' => $this->encodePrimaryKey($company_token->id),
|
||||
'token' => $company_token->token,
|
||||
'name' => $company_token->name,
|
||||
'user_id' => $company_token->user_id,
|
||||
'company_id' => $company_token->company_id,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -3,7 +3,11 @@
|
||||
namespace App\Transformers;
|
||||
|
||||
use App\Models\Account;
|
||||
use App\Models\Company;
|
||||
use App\Models\CompanyToken;
|
||||
use App\Models\User;
|
||||
use App\Transformers\CompanyTokenTransformer;
|
||||
use App\Transformers\CompanyTransformer;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
/**
|
||||
@ -37,6 +41,8 @@ class UserTransformer extends EntityTransformer
|
||||
* @var array
|
||||
*/
|
||||
protected $defaultIncludes = [
|
||||
'company_token',
|
||||
'companies',
|
||||
];
|
||||
|
||||
/**
|
||||
@ -73,4 +79,19 @@ class UserTransformer extends EntityTransformer
|
||||
|
||||
}
|
||||
|
||||
public function includeCompanies(User $user)
|
||||
{
|
||||
$transformer = new CompanyTransformer($this->serializer);
|
||||
|
||||
return $this->includeCollection($user->companies(), $transformer, Company::class)
|
||||
}
|
||||
|
||||
public function includeCompanyToken(User $user)
|
||||
{
|
||||
$transformer = new CompanyTokenTransformer($this->serializer);
|
||||
|
||||
return $this->includeItem($user->token(), $transformer, CompanyToken::class)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
|
||||
|
||||
Route::group(['middleware' => ['api_secret_check']], function () {
|
||||
|
||||
Route::post('api/v1/signup', 'AccountController@store')->name('signup.submit');
|
||||
Route::post('api/v1/signup', 'AccountController@store')->name('signup.submit');
|
||||
Route::post('api/v1/login', 'UserController@login')->name('login.submit');
|
||||
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user