mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 15:14:35 -04:00
Cleaning up OAuth
This commit is contained in:
parent
383c04827d
commit
364df6bfe2
@ -69,12 +69,21 @@ class LoginController extends BaseController
|
|||||||
* the default company into a session variable
|
* the default company into a session variable
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
|
* deprecated .1 API ONLY we don't need to set any session variables
|
||||||
*/
|
*/
|
||||||
public function authenticated(Request $request, User $user) : void
|
public function authenticated(Request $request, User $user) : void
|
||||||
{
|
{
|
||||||
//$this->setCurrentCompanyId($user->companies()->first()->account->default_company_id);
|
//$this->setCurrentCompanyId($user->companies()->first()->account->default_company_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Login via API
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request The request
|
||||||
|
*
|
||||||
|
* @return Response|User Process user login.
|
||||||
|
*/
|
||||||
public function apiLogin(Request $request)
|
public function apiLogin(Request $request)
|
||||||
{
|
{
|
||||||
$this->validateLogin($request);
|
$this->validateLogin($request);
|
||||||
@ -103,21 +112,26 @@ class LoginController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function redirectToProvider(string $provider)
|
public function redirectToProvider(string $provider)
|
||||||
{
|
{
|
||||||
|
//'https://www.googleapis.com/auth/gmail.send','email','profile','openid'
|
||||||
|
//
|
||||||
if(request()->has('code'))
|
if(request()->has('code'))
|
||||||
return $this->handleProviderCallback($provider);
|
return $this->handleProviderCallback($provider);
|
||||||
else
|
else
|
||||||
return Socialite::driver($provider)->scopes('https://www.googleapis.com/auth/gmail.send','email','profile','openid')->redirect();
|
return Socialite::driver($provider)->scopes()->redirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function redirectToProviderAndCreate(string $provider)
|
public function redirectToProviderAndCreate(string $provider)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$redirect_url = config('services.' . $provider . '.redirect') . '/create';
|
||||||
|
|
||||||
if(request()->has('code'))
|
if(request()->has('code'))
|
||||||
return $this->handleProviderCallbackAndCreate($provider);
|
return $this->handleProviderCallbackAndCreate($provider);
|
||||||
else
|
else
|
||||||
return Socialite::driver($provider)->scopes('https://www.googleapis.com/auth/gmail.send','email','profile','openid')->redirect();
|
return Socialite::driver($provider)->redirectUrl($redirect_url)->redirect();
|
||||||
|
|
||||||
//config('services.google.redirect')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -174,7 +188,6 @@ class LoginController extends BaseController
|
|||||||
public function handleProviderCallback(string $provider)
|
public function handleProviderCallback(string $provider)
|
||||||
{
|
{
|
||||||
$socialite_user = Socialite::driver($provider)
|
$socialite_user = Socialite::driver($provider)
|
||||||
->scopes('https://www.googleapis.com/auth/gmail.send','email','profile','openid')
|
|
||||||
->stateless()
|
->stateless()
|
||||||
->user();
|
->user();
|
||||||
|
|
||||||
@ -223,6 +236,9 @@ class LoginController extends BaseController
|
|||||||
* is returned to us here and we send back the correct
|
* is returned to us here and we send back the correct
|
||||||
* user object payload - or error.
|
* user object payload - or error.
|
||||||
*
|
*
|
||||||
|
* This can be extended to a create route also - need to pass a ?create query parameter and
|
||||||
|
* then process the signup
|
||||||
|
*
|
||||||
* return User $user
|
* return User $user
|
||||||
*/
|
*/
|
||||||
public function oauthApiLogin()
|
public function oauthApiLogin()
|
||||||
|
@ -123,19 +123,21 @@ class OAuth
|
|||||||
|
|
||||||
public function getTokenResponse($token)
|
public function getTokenResponse($token)
|
||||||
{
|
{
|
||||||
$user = null;
|
$user = false;
|
||||||
|
|
||||||
$payload = $this->provider_instance->getTokenResponse($token);
|
$payload = $this->provider_instance->getTokenResponse($token);
|
||||||
$oauthUserId = $this->provider_instance->harvestSubField($payload);
|
|
||||||
|
|
||||||
LookupUser::setServerByField('oauth_user_key', $this->providerId . '-' . $oauthUserId);
|
$oauth_user_id = $this->provider_instance->harvestSubField($payload);
|
||||||
|
|
||||||
if($this->provider_instance)
|
$query = [
|
||||||
$user = User::where('oauth_user_id', $oauthUserId)->where('oauth_provider_id', $this->provider_id)->first();
|
'oauth_user_id' => oauth_user_id,
|
||||||
|
'oauth_provider_id'=> $this->provider_id
|
||||||
|
];
|
||||||
|
|
||||||
|
if($user = MultiDB::hasUser($query))
|
||||||
if ($user)
|
{
|
||||||
return $user;
|
return $user;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user