diff --git a/src/League/OAuth2/Server/Storage/Fluent/Client.php b/src/League/OAuth2/Server/Storage/Fluent/Client.php index cf0544d3..4a26a513 100644 --- a/src/League/OAuth2/Server/Storage/Fluent/Client.php +++ b/src/League/OAuth2/Server/Storage/Fluent/Client.php @@ -7,26 +7,32 @@ use \League\OAuth2\Server\Storage\ClientInterface; class Client implements ClientInterface { - public function getClient($clientId, $clientSecret = null, $redirectUri = null, $grantType = null) - { - if ( ! is_null($redirectUri) && is_null($clientSecret)) { + public function getClient($clientId, $clientSecret = null, $redirectUri = null, $grantType = null) { + + + if (!is_null($redirectUri) && is_null($clientSecret)) { $result = DB::table('oauth_clients') - ->join('oauth_client_endpoints', 'oauth_clients.id', '=', 'oauth_client_endpoints.client_id') - ->where('oauth_clients.id', $clientId) - ->where('oauth_client_endpoints.redirect_uri', $redirectUri) - ->first(); - } elseif ( ! is_null($clientSecret) && is_null($redirectUri)) { + ->join('oauth_client_endpoints', 'oauth_clients.id', '=', 'oauth_client_endpoints.client_id') + ->where('oauth_clients.id', $clientId) + ->where('oauth_client_endpoints.redirect_uri', $redirectUri) + ->first(); + + } elseif (!is_null($clientSecret) && is_null($redirectUri)) { $result = DB::table('oauth_clients') - ->where('id', $clientId) - ->where('secret', $clientSecret) - ->first(); - } elseif ( ! is_null($clientSecret) && ! is_null($redirectUri)) { + ->where('id', $clientId) + ->where('secret', $clientSecret) + ->first(); + + } elseif (!is_null($clientSecret) && !is_null($redirectUri)) { + $queries = DB::getQueryLog(); + $result = DB::table('oauth_clients') - ->join('oauth_client_endpoints', 'oauth_clients.id', '=', 'oauth_client_endpoints.client_id') - ->where('oauth_clients.id', $clientId) - ->where('oauth_clients.secret', $clientSecret) - ->where('oauth_client_endpoints.redirect_uri', $redirectUri) - ->first(); + ->join('oauth_client_endpoints', 'oauth_clients.id', '=', 'oauth_client_endpoints.client_id') + ->where('oauth_clients.id', $clientId) + ->where('oauth_clients.secret', $clientSecret) + ->where('oauth_client_endpoints.redirect_uri', $redirectUri) + ->first(); + } if (is_null($result)) { @@ -34,10 +40,11 @@ class Client implements ClientInterface { } return array( - 'client_id' => $result->id, - 'client_secret' => $result->secret, - 'redirect_uri' => (isset($result->redirect_uri)) ? $result->redirect_uri : null, - 'name' => $result->name + 'client_id' => $result->id, + 'client_secret' => $result->secret, + 'redirect_uri' => (isset($result->redirect_uri)) ? $result->redirect_uri : null, + 'name' => $result->name, + 'auto_approve' => $result->auto_approve ); } diff --git a/src/League/OAuth2/Server/Storage/Fluent/Scope.php b/src/League/OAuth2/Server/Storage/Fluent/Scope.php index a68b7afd..636a59df 100644 --- a/src/League/OAuth2/Server/Storage/Fluent/Scope.php +++ b/src/League/OAuth2/Server/Storage/Fluent/Scope.php @@ -7,11 +7,10 @@ use \League\OAuth2\Server\Storage\ScopeInterface; class Scope implements ScopeInterface { - public function getScope($scope, $clientId = null, $grantType = null) - { - $result = DB::table('oauth_scopes') - ->where('key', $scope) - ->first(); + public function getScope($scope, $clientId = null, $grantType = null) { + $result = DB::table('oauth_scopes') + ->where('scope', $scope) + ->first(); if (is_null($result)) { return false; @@ -19,9 +18,10 @@ class Scope implements ScopeInterface { return array( 'id' => $result->id, - 'scope' => $result->key, + 'scope' => $result->scope, 'name' => $result->name, 'description' => $result->description ); } + } \ No newline at end of file diff --git a/src/League/OAuth2/Server/Storage/Fluent/Session.php b/src/League/OAuth2/Server/Storage/Fluent/Session.php index e188d2ee..5625ebb1 100644 --- a/src/League/OAuth2/Server/Storage/Fluent/Session.php +++ b/src/League/OAuth2/Server/Storage/Fluent/Session.php @@ -7,123 +7,118 @@ use \League\OAuth2\Server\Storage\SessionInterface; class Session implements SessionInterface { - public function createSession($clientId, $ownerType, $ownerId) - { - return DB::table('oauth_sessions')->insertGetId(array( + public function createSession($clientId, $ownerType, $ownerId) { + return DB::table('oauth_sessions')->insertGetId([ 'client_id' => $clientId, 'owner_type' => $ownerType, 'owner_id' => $ownerId - )); + ]); } - public function deleteSession($clientId, $ownerType, $ownerId) - { + public function deleteSession($clientId, $ownerType, $ownerId) { DB::table('oauth_sessions') - ->where('client_id', $clientId) - ->where('owner_type', $ownerType) - ->where('owner_id', $ownerId) - ->delete(); + ->where('client_id', $clientId) + ->where('owner_type', $ownerType) + ->where('owner_id', $ownerId) + ->delete(); } - public function associateRedirectUri($sessionId, $redirectUri) - { - DB::table('oauth_session_redirects')->insert(array( + public function associateRedirectUri($sessionId, $redirectUri) { + DB::table('oauth_session_redirects')->insert([ 'session_id' => $sessionId, 'redirect_uri' => $redirectUri, - )); + ]); } - public function associateAccessToken($sessionId, $accessToken, $expireTime) - { - return DB::table('oauth_session_access_tokens')->insertGetId(array( + public function associateAccessToken($sessionId, $accessToken, $expireTime) { + return DB::table('oauth_session_access_tokens')->insertGetId([ 'session_id' => $sessionId, 'access_token' => $accessToken, 'access_token_expires' => $expireTime, - )); + ]); } - public function associateRefreshToken($accessTokenId, $refreshToken, $expireTime, $clientId) - { - DB::table('oauth_session_refresh_tokens')->insert(array( + public function associateRefreshToken($accessTokenId, $refreshToken, $expireTime, $clientId) { + DB::table('oauth_session_refresh_tokens')->insert([ 'session_access_token_id' => $accessTokenId, 'refresh_token' => $refreshToken, 'refresh_token_expires' => $expireTime, 'client_id' => $clientId, - )); + ]); } - public function associateAuthCode($sessionId, $authCode, $expireTime) - { - DB::table('oauth_session_authcodes')->insert(array( + public function associateAuthCode($sessionId, $authCode, $expireTime) { + + + DB::table('oauth_session_authcodes')->insert([ 'session_id' => $sessionId, 'auth_code' => $authCode, 'auth_code_expires' => $expireTime - )); + ]); + + return DB::table('oauth_session_authcodes')->where('auth_code',$authCode)->first()->id; + } - public function removeAuthCode($sessionId) - { + public function removeAuthCode($sessionId) { DB::table('oauth_session_authcodes') - ->where('session_id', $sessionId) - ->delete(); + ->where('session_id', $sessionId) + ->delete(); } - public function validateAuthCode($clientId, $redirectUri, $authCode) - { + public function validateAuthCode($clientId, $redirectUri, $authCode) { $result = DB::table('oauth_sessions') - ->select(array('oauth_sessions.id as session_id', 'oauth_session_authcodes.id as authcode_id')) - ->join('oauth_session_authcodes', 'oauth_sessions.id', '=', 'oauth_session_authcodes.session_id') - ->join('oauth_session_redirects', 'oauth_sessions.id', '=', 'oauth_session_redirects.session_id') - ->where('oauth_sessions.client_id', $clientId) - ->where('oauth_session_authcodes.auth_code', $authCode) - ->where('oauth_session_authcodes.auth_code_expires', '>=', time()) - ->where('oauth_session_redirects.redirect_uri', $redirectUri) - ->first(); - + ->select(['oauth_sessions.id as session_id', 'oauth_session_authcodes.id as authcode_id']) + ->join('oauth_session_authcodes', 'oauth_sessions.id', '=', 'oauth_session_authcodes.session_id') + ->join('oauth_session_redirects', 'oauth_sessions.id', '=', 'oauth_session_redirects.session_id') + ->where('oauth_sessions.client_id', $clientId) + ->where('oauth_session_authcodes.auth_code', $authCode) + ->where('oauth_session_authcodes.auth_code_expires', '>=', time()) + ->where('oauth_session_redirects.redirect_uri', $redirectUri) + ->first(); + return (is_null($result)) ? false : (array) $result; } - public function validateAccessToken($accessToken) - { + public function validateAccessToken($accessToken) { $result = DB::table('oauth_session_access_tokens') - ->join('oauth_sessions', 'oauth_session_access_tokens.session_id', '=', 'oauth_sessions.id') - ->where('access_token', $accessToken) - ->where('access_token_expires', '>=', time()) - ->first(); + ->join('oauth_sessions', 'oauth_session_access_tokens.session_id', '=', 'oauth_sessions.id') + ->where('access_token', $accessToken) + ->where('access_token_expires', '>=', time()) + ->first(); return (is_null($result)) ? false : (array) $result; } - public function validateRefreshToken($refreshToken, $clientId) - { + public function validateRefreshToken($refreshToken, $clientId) { $result = DB::table('oauth_session_refresh_tokens') - ->where('refresh_token', $refreshToken) - ->where('client_id', $clientId) - ->where('refresh_token_expires', '>=', time()) - ->first(); + ->where('refresh_token', $refreshToken) + ->where('client_id', $clientId) + ->where('refresh_token_expires', '>=', time()) + ->first(); return (is_null($result)) ? false : $result->session_access_token_id; } - public function getAccessToken($accessTokenId) - { + public function getAccessToken($accessTokenId) { $result = DB::table('oauth_session_access_tokens') - ->where('id', $accessTokenId) - ->first(); + ->where('id', $accessTokenId) + ->first(); return (is_null($result)) ? false : (array) $result; } - public function associateScope($accessTokenId, $scopeId) - { - DB::table('oauth_session_token_scopes')->insert(array( + public function associateScope($accessTokenId, $scopeId) { + + + + DB::table('oauth_session_token_scopes')->insert([ 'session_access_token_id' => $accessTokenId, 'scope_id' => $scopeId, - )); + ]); } - public function getScopes($accessToken) - { + public function getScopes($accessToken) { return DB::table('oauth_session_token_scopes') ->join('oauth_session_access_tokens', 'oauth_session_token_scopes.session_access_token_id', '=', 'oauth_session_access_tokens.id') ->join('oauth_scopes', 'oauth_session_token_scopes.session_access_token_id', '=', 'oauth_scopes.id') @@ -131,26 +126,29 @@ class Session implements SessionInterface { ->get(); } - public function associateAuthCodeScope($authCodeId, $scopeId) - { - DB::table('oauth_session_authcode_scopes')->insert(array( + public function associateAuthCodeScope($authCodeId, $scopeId) { + + DB::table('oauth_session_authcode_scopes')->insert([ 'oauth_session_authcode_id' => $authCodeId, 'scope_id' => $scopeId - )); + ]); } - public function getAuthCodeScopes($oauthSessionAuthCodeId) - { - return DB::table('oauth_session_authcode_scopes') - ->where('oauth_session_authcode_id', '=', $oauthSessionAuthCodeId) - ->get(); + public function getAuthCodeScopes($oauthSessionAuthCodeId) { + $result = DB::table('oauth_session_authcode_scopes') + ->where('oauth_session_authcode_id', '=', $oauthSessionAuthCodeId) + ->get(); + + return array_map(function($val) + { + return json_decode(json_encode($val), true); + }, $result); } - public function removeRefreshToken($refreshToken) - { + public function removeRefreshToken($refreshToken) { DB::table('oauth_session_refresh_tokens') - ->where('refresh_token', '=', $refreshToken) - ->delete(); + ->where('refresh_token', '=', $refreshToken) + ->delete(); } } \ No newline at end of file