From 43de9af71f7f4ca5731b94a06d688ae8412ba427 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Fri, 6 Jul 2018 11:14:41 +0200 Subject: 2018/Feb/28 -i állapot hozzáadva, mint a módosítások kiindulási állapota --- mayor-orig/www/include/share/net/googleapi.php | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 mayor-orig/www/include/share/net/googleapi.php (limited to 'mayor-orig/www/include/share/net/googleapi.php') diff --git a/mayor-orig/www/include/share/net/googleapi.php b/mayor-orig/www/include/share/net/googleapi.php new file mode 100644 index 00000000..bfe3642d --- /dev/null +++ b/mayor-orig/www/include/share/net/googleapi.php @@ -0,0 +1,65 @@ +setAuthConfig($oauth_credentials); + $client->setClientId(__GOOGLEAPI_CLIENT_ID); + $client->setClientSecret(__GOOGLEAPI_CLIENT_SECRET); + $client->setRedirectUri($redirect_uri); + $client->setScopes('email'); + + try { + $payload = $client->verifyIdToken($_GET['id_token']); + } catch(Exception $e) { + $_SESSION['alert'][] = 'info::googleapi SDK hiba: ' . $e->getMessage(); + } + if (isset($payload['sub'])) { // subject + $_SESSION['googleapi_object'] = $payload; + // mayor auth start + $accountInformation=array(); + $toPolicy = 'public'; + $data = getUserByGoogleSub($payload['sub']); // subject=google user id + if ($data === false) { + $_SESSION['alert'][] = 'info:Nincs ilyen user (még) a MaYoR-ral összekötve, kérjük jelentkezz be jelszóval!'; + } elseif (is_array($data)) { + // Ha van, akkor ki az? Mert ő bemehet. + setGoogleToken($payload['sub'],$_GET['id_token']); // a verifyIdToken igazolja + return array('userAccount'=>$data['userAccount'],'toPolicy'=>$data['policy'],'googleUserEmail'=>$data['googleUserEmail'],'studyId'=>$data['studyId'],'googleUserCn'=>$data['googleUserCn'],'accessToken'=>$accessToken); + } + /* mayor auth stop */ + } else { + $_SESSION['alert'][] = 'info::googleapi:nem érvényes accessToken'; + } + /* googleapi login stop */ + } + return false; +} + +function getUserByGoogleSub($googleSub) { + if ($googleSub=='') return false; + $q = "SELECT * FROM googleConnect WHERE googleSub='%s' ORDER BY policy LIMIT 1"; + $v = array($googleSub); + $record = db_query($q,array('fv'=>'getUserByGoogleSub','modul'=>'login','result'=>'record','values'=>$v)); + return $record; +} + +function setGoogleToken($googleSub, $id_token) { + if ($googleSub=='') return false; + if ($id_token=='') return false; + $_SESSION['googleapi_id_token'] = $id_token; +} + +?> -- cgit v1.2.3