Vanilla Forums SSO php не авторизируется на форуме

Форумы о ванили 2.3

Я проходил несколько раз и просматривал почти все документы, которые мог найти, но я застрял.

Я скачал последнюю версию vanilla и скачал последнюю версию плагина jsconnect.

У меня все настройки установлены в настройках плагина jsconnect в админке

Настройки jsConnect

URL входа
Http: //localhost/site/login.php

URL регистрации
Http: //localhost/site/register.php

Выйти из URL
Http: //localhost/site/logout.php

Форумы, расположенные в
HTTP: // локальный / сайт / форум /

URL аутентификации
Http: //localhost/site/includes/auth.php

так что я захожу на свой сайт, все отлично, я нажимаю на форумах, там написано, что я не залогинен.

Моя страница входа в систему

function login_user($email, $password){

$active = 1;

$db = dbconnect();
$stmt = $db->prepare('SELECT * FROM users WHERE email = ? AND active= ?');
$stmt->bind_param('si', $email, $active);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows == 1) {
$row = $result->fetch_array();

$id = $row['id'];
$email = $row['email'];
$username = $row['username'];
$db_password = $row['password'];

isset($_POST['remember']) ? $remember = $_POST['remember'] : $remember = "";

if (password_verify($password, $db_password)) {

$_SESSION['id'] = $id;
$_SESSION['email'] = $email;
$_SESSION['username'] = $username;

$fingerprint = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;

if($remember === "yes"){
rememberMe($id);
}

return true;
} else {
return false;
}
return true;
} else {
return false;
}
}

Мой authenticate.php

<?php

include_once '../db/db.php';
include_once '../db/functions.php';
require_once '../vanilla/plugins/jsconnect/functions.jsconnect.php';// 1. Get your client ID and secret here. These must match those in your jsConnect settings.
$clientID = "xxxxx";
$secret = "xxxxxxxxxx";// 2. Grab the current user from your session management system or database here.
$signedIn = true; // this is just a placeholder

if($_SESSION['id'])
$signedIn = true;// 3. Fill in the user information in a way that Vanilla can understand.
$user = array();if ($signedIn) {
// CHANGE THESE FOUR LINES.

$user['uniqueid'] = $_SESSION['id'];
$user['name'] = $_SESSION['username'];
$user['email'] = $_SESSION['email'];

}

// 4. Generate the jsConnect string.

// This should be true unless you are testing.
// You can also use a hash name like md5, sha1 etc which must be the name as the connection settings in Vanilla.
$secure = true;

WriteJsConnect($user, $_GET, $clientID, $secret, $secure);

exit();

?>

3

Решение

Похоже, вы не начинаете сеансы на этой странице, которую вы должны использовать
попробуйте следующее

<?php
session_start();

include_once '../db/db.php';
include_once '../db/functions.php';
require_once '../vanilla/plugins/jsconnect/functions.jsconnect.php';
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]