MyBB.de Forum

Normale Version: Login mit externem Skript
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

JudGer

Huhu,

ich habe eine Frage bezüglich eines Logins mit einem externen Skript. Damit meine ich aber nicht, dass ich von extern ein Skript von MyBBoard aufrufen möchte (oder vll doch?).

Ich habe bereits eine fertige, selbst erstellte Seite. Falls sich dort eingeloggt wird, hätte ich gerne, dass man auch direkt im Forum online ist.

Der erste Schritt wird es wohl sein, die Benutzer aus der jetzigen Datenbank in die von MyBB zu bekommen. Dabei werden die Passwörter aber unterschiedlich gehasht, sodass ich das wohl nicht so einfach hinbekommen werde und ein Skript brauche, was beim nächsten Login des Users das Password passend für MyBB hasht und in dessen Datenbank schreibt, oder?

Die nächste Frage wäre dann, wie ich eine aktive Session in MyBB erzeugen kann? Reicht ein einfacher Eintrag in der sessions-Tabelle der Datenbank, oder muss zusätzlich ein Cookie gesetzt werden? Falls ja, mit welchen Werten?

Die Seite ist auf Grundlage von CakePHP programmiert und folgender Codeabschnitt regelt den Login:

PHP-Code:
function login() {
        if(
$this->Auth->user()) {
            
$id $this->Auth->user('id');
            
$this->User->id $id;
            
$this->User->saveField('lastlogin'date('Y-m-d H:i:s'));
            
$this->redirect("/".$this->Session->read("lastPageVisited"));
        }
        else {
            
$this->Session->setFlash("Falsche Logindaten! Bitte erneut versuchen");
        }
    } 

Bringt wohl nicht viel, aber vll hilft es jemanden. Hier müsste sich dann die Aktion abspielen.

Hoffe mir kann man überhaupt noch helfen Smile

LG
JudGer
Warum schaust du dir nicht den MyBB-Login an? Da stehen alle Queries, Cookies und Funktionen (allerdings über mehrere Dateien verteilt): https://crossreference.mybb.de

JudGer

Hey,

ich lese mich momentan etwas in den Code ein, aber es ist recht komplex und dauert daher etwas länger.

Es gibt ja die Funktion, dass sich der Login gemerkt wird. Wo finde ich im Code denn die Stelle, wo geprüft wird, ob noch ein alter Login vorhanden ist? Da würde es ja sicherlich reichen nur ein Cookie zu setzen? Oder muss dafür auch ein Eintrag in der Sessions-Tabelle vorhanden sein? Sry, finde die Stelle im Code leider überhaupt nicht Sad

Gruß
JudGer
Der Login-Code beginnt ab zeile 958 in der member.php.

inc/functions_user.php
inc/functions_post.php
global.php
inc/datahandlers/user.php
inc/functions_online.php
inc/functions_time.php
inc/class_parser.php

Dies sind die Dateien, die included werden. Durch diese musst du dich allerdings selber durchwühlen. ;-)
Deshalb Crossreference. Wink Viele Zeilen hat die Funktion nicht. Ob man eingeloggt ist, wird in der inc/class_session.php geprüft.