Generar Sesiones SMF ?

Iniciado por Diabliyo, 31 Octubre 2012, 16:28 PM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Buenas...

Tengo un foro SMF, he visto que las Sesiones las crea con el mismo nombre sin importar el username, ademas también URLENCODEADO el "hash" (contenido de la sesión).

Mi duda, es como generar esa sesion a mano ?... vaya, el contenido de la sesión....

El punto es generar la sesión en mi dominio principal (miweb.com) y de esta forma cuando acceda al foro (foro.miweb.com) poder hacer presente la sesión sin que vuelva a tipear su username y password.

Saludos !

Diabliyo

Estuve contemplando usar SSI.php, pero este script retorna al usuario hacia la URL del foro y no me conviene eso :S, ya que el usuario puede logearse desde la web principal y en ese momento no me interesa ni combiene mandarlo al foro :S.

Nose ustedes, pero mi idea es:

Usar sockets para llamar SSI de forma transparente, logearme, obtener la SESION (SMFCookie956), despues pegarsela al usuario en "midominio.com". Y cuando entre al foro (foro.midominio.com), jalo la session con otra funcion (session_get_cookie_params()), ya hice pruebas con sessiones que creo manualmente, y si esta presente dicha variable en el foro.

Pero bueno... El unico detalle que le veo, es que como uso el socket, a fin de cuentas el SMF detectara que todos los usuarios entran del mismo IP :S... IP del socket (mi servidor).

Saludos !

#!drvy

Hola,
SSI también permite no retornar al foro sino a otra url que tu le indiques.
Código (php) [Seleccionar]
<?php
require_once("smf/SSI.php");

ssi_login();

// A donde redirigir despues de login
$_SESSION['login_url'] = 'http://localhost/otra_cosa.php';

// A donde redirigir despues de logout
$_SESSION['logout_url'] = 'http://www.google.com';
?>



Saludos

Diabliyo

Cita de: drvy | BSM en 31 Octubre 2012, 22:30 PM
Hola,
SSI también permite no retornar al foro sino a otra url que tu le indiques.
Código (php) [Seleccionar]
<?php
require_once("smf/SSI.php");

ssi_login();

// A donde redirigir despues de login
$_SESSION['login_url'] = 'http://localhost/otra_cosa.php';

// A donde redirigir despues de logout
$_SESSION['logout_url'] = 'http://www.google.com';
?>



Saludos

Creo que no has entendido del todo lo que menciono sobre SOCKETS...
No puedo hacer "requiere_once" porque esto haria se imprima el formulario de login y eso es lo que no quiero quiero que desde mi propio formulario se haga el login tanto a mi web como al foro, asi el usuario tiene un mismo registro.

En fin.... En mi web de echo no voy a poner login por formulario, solo por perfil social, es por eso que no pudo incrustar e SSI.php de login.

Necesito hacer todo a el proceso en una sola conexion.....

Saludos !

#!drvy

#4
CitarEstuve contemplando usar SSI.php, pero este script retorna al usuario hacia la URL del foro y no me conviene eso :S, ya que el usuario puede logearse desde la web principal y en ese momento no me interesa ni combiene mandarlo al foro :S.

Lo dije por eso mas que nada.



SMF tiene una API. La de la version 1.x es oficial y se la da soporte por parte del staff pero hay una NO oficial para la 2.x.

Te permite autentificar un usuario mediante una simple función. Bueno te lo explican dentro del propio archivo. Prácticamente te deja manejar el foro entero desde ese script sin necesidad de SSI.

Código (url) [Seleccionar]
http://www.simplemachines.org/community/index.php?topic=453008.0

Ten en cuenta que para ver los archivos tienes que estar registrado y autentificado.


Espero que te sirva. Así te ahorras tiempo y no tendras que usar SOCKET's xD

PD: También puedes mirarte el archivo LogInOut.php (en /Sources) y intentar trabajar directamente con el. Pero ten en cuenta que no vas a recibir mucho soporte (ayuda) de los miembros del STAFF... son "muy orgullosos" de su sistema de seguridad y cualquier intento de hacerlo menos seguro termina por rechazar y no ayudar (aunque lo vallas a usar solo tu.)..

Saludos

Diabliyo

Ya vi el post y me interesa el SMF API 2.0, pero no la encuentro descargable :S... Solo la 1.0 y 1.1.

Saludos !

#!drvy

Tienes que estar registrado y logueado dentro del post para ver los archivos que hay añadidos al primer post xD.

De todos modos te dejo una copia que acabo de subir a DropBox.
Código (url) [Seleccionar]
http://dl.dropbox.com/u/93362349/smf_api2.php


Saludos

aicrag

No hace mucho realice una implementacion de login con otro site para smf2. Se puede resumir en estas tres funciones:

function smfintegration_init() {
  global $smf_boarddir, $smf_user_info, $enable;
  $smf_boarddir = get_var('pathforum','');
  if (file_exists($smf_boarddir.'/Settings.php')) {
    $enable = TRUE;
    load_include('php', 'smfintegration', 'smf_api_2/smf_api_2');   
  }
}


function _smfintegration_sync_user_login() {
  global $smf_boarddir, $smf_user_info;
  smf_api_get_user($_REQUEST['name'],$_REQUEST['pass']);
  smf_api_login((60*60*24*23),$smf_user_info['id_member'],$_REQUEST['pass']);
}

function _smfintegration_sync_user_logout() {
  global $smf_boarddir, $smf_user_info;
  smf_api_get_user($_REQUEST['name'],$_REQUEST['pass']);
  smf_api_logout();
}


Genera una cookie de session válida para smf2.