I've tried to read the great variety of login/redirect threads on the board but haven't found anything akin to what I'm trying to do.
I have a flash app that accesses a wide variety of server-side data via php scripts. What I am attempting is to allow the user to 'log in' via the flash application residing on the same server. I put the 'log in' in quotes only because I'm not expecting the user to be able to browse the forums via my wee app, I just need to authenticate a username/password combo and acquire a valid session.
A brief rundown of the sequence of events:
1. user is playing with the flash app and would like to save his/her progress.
2. a dialog box prompts for the username and password.
3. I do a POST to
https://mysite.com/handleLogin.php
4. the php page validates the provided data and returns a 'go/no go' string to the flash app.
The problem I am running into is that the login code below does not work without using the do_login_redirect() function. With the correct username and password, it will return 'true' for a success but I'm not really logged in - when I browse to the forum index.php it acts as if I have not logged in.
Code:
function validateLogin( $username, $password )
{
global $vbulletin;
$vbulletin->input->clean( $username, TYPE_STR );
$vbulletin->input->clean( $password, TYPE_STR );
$strikes = verify_strike_status($username);
if ($strikes === false || $strikes >= 5)
{
return false; //locked out
}
if( !verify_authentication($username, $password, '', '', true, false) )
{
return $strikes + 1; //fat-fingered the password?
}
else
{
//User and pw ok, let's log them in
exec_unstrike_user($username);
process_new_login('', true, '');
//*****************************
// WHY MUST I REDIRECT?
//*****************************
//do_login_redirect();
return true;
}
}
So now my questions (finally):
1. Does anyone know why there needs to be a redirect? Does it need one to properly set the cookie/active user list?
2. Is there a way around this?
I appreciate any help you folks can provide.