Vanilla Forums SSO php is not in the forum

Vanilla Forums 2.3

I've been doing this a few times and I've looked at almost every documentation I could find, but I'm stuck.

I downloaded the latest vanilla and I downloaded the latest jsconnect plugin ..

I have all configuration set in jsconnect plugin settings in admin area

JsConnect settings

Login id http: //localhost/site/login.php

Registration url http: //localhost/site/register.php

Logout http: //localhost/site/logout.php

Forums located at http: // localhost / site / forums /

Authentication URL http: //localhost/site/includes/auth.php

so i login to my site everything is fine. I click forums. I am not logged in.

My account function

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;
    }
}

      

My 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


source to share


1 answer


It looks like you are not starting your sessions on this page, you should use try the following



<?php
session_start();

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

      

+3


source







All Articles