首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >香草论坛SSO php没有登录到论坛

香草论坛SSO php没有登录到论坛
EN

Stack Overflow用户
提问于 2017-04-09 02:42:12
回答 1查看 711关注 0票数 2

香草论坛2.3

我已经看过好几次了,几乎所有我能找到的文档我都看过了,但是我被困住了。

我下载了最新版本的香草和最新版本的jsconnect插件。

我在管理区域的jsconnect插件设置中设置了所有配置。

jsConnect设置

登录Url http://localhost/site/login.php

注册Url http://localhost/site/register.php

注销Url http://localhost/site/logout.php

位于 http://localhost/site/forums/论坛

身份验证URL http://localhost/site/includes/auth.php

所以我登录到我的网站,一切都很好,我点击论坛,它说我没有登录。

我的登录页面函数

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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();

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-15 04:47:03

在此页面上,您似乎没有启动会话,您必须使用以下方法

代码语言:javascript
复制
<?php
session_start();

include_once '../db/db.php';
include_once '../db/functions.php';
require_once '../vanilla/plugins/jsconnect/functions.jsconnect.php';
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43302497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档