<body> <p>Ten przykład pokazuje sposób w jaki można użyć NKConnect do logowania bez potrzeby używania dodatkowej strony obsługującej callback. Dla nie zalogowanego użytkownika wyświetlamy przycisk "Zaloguj z NK" który otworzy stronę logowania w portalu NK i poprosi użytkownika o akceptację dostępu do danych. Po zalogowaniu uruchamiana jest sesja, dzięki czemu na dowolnej stronie, poprzez użycie</p> <pre> $auth = new NKConnect($conf); $user = $auth->user() </pre> <p>masz dostęp do informacji o zalogowanym użytkowniku.</p> <?php if ($auth->authenticated()) { ?> Jesteś zalogowany jako <?php echo htmlspecialchars($auth->user()->name()); ?> .<br /> <img src="<?php echo $auth->user()->thumbnailUrl(); ?> " alt="Thumb"/><br /> <a href="<?php echo $auth->logoutLink(); ?> ">Wyloguj</a> <?php } else { ?> <?php echo $auth->button();
<head> <title>Demo services</title> </head> <body> <?php if ($auth->authenticated()) { ?> <span style="color: red">Uwaga!</span> <br /> Jeśli poniżej dostaniesz wyjątek braku dostępu, wyloguj się, i zaloguj ponownie, NK poprosi Cię o akceptacje nowego zestawu uprawnień.<br /> <a href="<?php echo $auth->logoutLink(); ?> ">Wyloguj</a><br /> Jesteś zalogowany jako <?php echo htmlspecialchars($auth->user()->name()); ?> <img src="<?php echo $auth->user()->thumbnailUrl(); ?> " /><br /> <?php } else { ?> <?php echo $auth->button(); ?> <?php } ?> <br />
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Załaduj wspólny plik konfiguracji require 'authentication2config.php'; $auth = new NKConnect($conf); if ($auth->handleCallback()) { // Tutaj umieść kod, który wykonany zostanie po udanym zalogowaniu użytkownika na NK, wsztstkie dane użytkownika // dostępne są poprzez $auth->user() - możesz także skorzystać z dostępnych serwisów NK, przykłady znajdziesz w // pliku services.php. // Poniższy kawałek kodu jest prostym przykładem, służy do zademonstrowania *przykładowego* sposobu obsługi // użytkowników we własnej bazie danych // Sprawdź używając NK id, czy użytkownik znajduje się w bazie danych $q = $db->prepare("SELECT * FROM `users` WHERE `nk_person_id` = :nk_person_id"); $q->bindValue('nk_person_id', $auth->user()->id(), PDO::PARAM_STR); $q->execute(); if (false === ($u = $q->fetch(PDO::FETCH_ASSOC))) { // W bazie nie ma użytkownika, zarejestrujmy go $q = $db->prepare("INSERT INTO `users` (`nk_person_id`, `name`, `last_login_1`, `last_login_2`, `login_count`) VALUES (:nk_person_id, :name, :now, :now, 1)"); $q->bindValue('nk_person_id', $auth->user()->id(), PDO::PARAM_STR); $q->bindValue('name', $auth->user()->name(), PDO::PARAM_STR); $q->bindValue('now', @date("Y-m-d H:i:s"), PDO::PARAM_STR); $q->execute(); } else { // Użytkownik istnieje, zaktualizujmy datę ostatniego logowania i podbijmy licznik $q = $db->prepare("UPDATE `users` SET `last_login_2` = `last_login_1`, `last_login_1` = :now, `login_count` = (`login_count` + 1) WHERE `id` = :id"); $q->bindValue('id', $u['id'], PDO::PARAM_INT); $q->bindValue('now', @date("Y-m-d H:i:s"), PDO::PARAM_STR); $q->execute(); }
* http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Załaduj wspólny plik konfiguracji require 'authentication2config.php'; $auth = new NKConnect($conf); if ($auth->authenticated()) { // Ten kawałek kodu próbuje odszukać w lokalnej bazie danych użytkownika zalogowanego przez NK // Jeśli użytkownik jest zalogowany spróbuj pobrać jego dane $q = $db->prepare("SELECT * FROM `users` WHERE `nk_person_id` = :nk_person_id"); $q->bindValue('nk_person_id', $auth->user()->id(), PDO::PARAM_STR); $q->execute(); $user = $q->fetch(PDO::FETCH_ASSOC); } ?> <html> <head> <title>Demo autentykacji z użyciem NKConnect i wydzielonej strony z callbackiem</title> </head> <body> <p>Ten przykład pokazuje sposób w jaki można użyć NKConnect do logowania, z użyciem osobnej strony obsługującej callback wraz z integracją z istniejącą bazą danych użytkowników/rejestrowaniem nowych użytkowników. Adres strony z kodem callbacka powinieneś określić w konfiguracji. Na stronie logowania, lub dowolnych innych umieść przycisk, na stronie obsługującej callback umieść kod podobny do tego, który znajdziesz w przykładzie authentication2callback.php Po zalogowaniu uruchamiana jest sesja, dzięki czemu na dowolnej stronie, poprzez użycie</p> <pre>