<?php


////////////////////////////////////////////////////////////////////////////////
//IF WE'RE ALREADY LOGGED IN, JUST REDIRECT PAGE
////////////////////////////////////////////////////////////////////////////////
if ($user->loggedIn()) {
	return require(is_owner(__DIR__.'/redirect.inc.php'));
}




////////////////////////////////////////////////////////////////////////////////
//PULL THE REQUESTED ACCOUNT
////////////////////////////////////////////////////////////////////////////////
assertStatus(401,
	$auth = $db->row([
		'ua' => 'pudl_user_auth',
		'us' => 'pudl_user',
	], [
		'auth_account' => $get->auth_account,
		'us.user_id=ua.user_id',
	]),
	'Invalid Email Address or Password'
);




////////////////////////////////////////////////////////////////////////////////
//VERIFY THE PASSWORD
////////////////////////////////////////////////////////////////////////////////
assertStatus(401,
	password_verify(
		$get->password('auth_password'),
		$auth['auth_password']
	),
	'Invalid Email Address or Password'
);




////////////////////////////////////////////////////////////////////////////////
//PASS AUTHENTICATION TO ALTAFORM
////////////////////////////////////////////////////////////////////////////////
$af->authenticate($auth);




////////////////////////////////////////////////////////////////////////////////
//REDIRECT THE USER
////////////////////////////////////////////////////////////////////////////////
$user = new afUser($db, $auth);
require(is_owner(__DIR__.'/redirect.inc.php'));

<?php


////////////////////////////////////////////////////////////////////////////////
// IF WE'RE ALREADY LOGGED IN, JUST REDIRECT PAGE
////////////////////////////////////////////////////////////////////////////////
if ($user->loggedIn()) {
	return require(is_owner(__DIR__.'/redirect.inc.php'));
}




////////////////////////////////////////////////////////////////////////////////
// PULL THE REQUESTED ACCOUNT
////////////////////////////////////////////////////////////////////////////////
assertStatus(401,
	$auth = $db->row([
		'ua' => 'pudl_user_auth',
		'us' => 'pudl_user',
	], [
		'auth_account' => $get->auth_account,
		'us.user_id=ua.user_id',
	]),
	'Invalid Email Address or Password'
);




////////////////////////////////////////////////////////////////////////////////
// VERIFY THE PASSWORD
////////////////////////////////////////////////////////////////////////////////
$password = $get->password('auth_password');

assertStatus(401,
	password_verify($password, $auth['auth_password']),
	'Invalid Email Address or Password'
);




////////////////////////////////////////////////////////////////////////////////
// PASS AUTHENTICATION TO ALTAFORM
////////////////////////////////////////////////////////////////////////////////
$af->authenticate($auth);




////////////////////////////////////////////////////////////////////////////////
// LOAD THE USER PROFILE
////////////////////////////////////////////////////////////////////////////////
$user = new afUser($db, $auth);




////////////////////////////////////////////////////////////////////////////////
// UPDATE THE PASSWORD HASH IF NEEDED
////////////////////////////////////////////////////////////////////////////////
if (!empty($af->config->password['hash'])) {
	$hash = $af->config->password['hash'];
	if (password_needs_rehash($auth['auth_password'], $hash)) {
		$user->setPassword($auth['auth_account'], $password, $hash);
	}
}




////////////////////////////////////////////////////////////////////////////////
// REDIRECT TO BROWSER USER PROFILE
////////////////////////////////////////////////////////////////////////////////
unset($password);
require(is_owner(__DIR__.'/redirect.inc.php'));

Update the stored hash in the database if it is too old
Update the stored hash in the database if it is too old
