vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Hook for external authentication? (https://vborg.vbsupport.ru/showthread.php?t=211972)

warhau 04-23-2009 05:26 AM

Hook for external authentication?
 
Hi. I'm writing a plugin to use our external user database via SOAP. It creates the user in vb if the user does not already exist. If it does exist, it updates the vb password for the user to match whatever got authenticated through SOAP.

Everything works perfectly, except when a new user is created in vbb, they then get the failed log message. Simply refreshing the page logs them in.

It's currently hooked at global_complete. Is there an existing hook which would solve the failed login message on new account creation, or does it sound like I missing something in the code? Any example of this type of thing out there?

Version is 3.82.

Thanks in advance.

Dismounted 04-23-2009 05:32 AM

How are you authenticating vBulletin? Are you setting cookies?

warhau 04-23-2009 01:48 PM

Cookieuser is set as soon as they pass external auth. The account gets created fine. The only problem is that VB gives an incorrect login message following new account creation. Refreshing the error page logs the new user in without a problem.

Here's my code from that point until the end of the plugin:

Code:

        // User passed external authentication so set cookie
        $vbulletin->GPC['cookieuser'] = $vbulletin->GPC['vb_login_username'];

        // Check to see if externally authed user exists in VB
        $userid = $vbulletin->db->query_first_slave("
        SELECT userid
        FROM ".TABLE_PREFIX."user
        WHERE LOWER(email) = LOWER('".mysql_real_escape_string($vbulletin->GPC['vb_login_username'])."')");

        // If they exist in VB, get the userid
        if ($userid) {
                $newuser->set_existing(fetch_userinfo($userid['userid'], 0));
                $newuser->set('password', $passwd);
                }
        // If not set up the externally authed user in VB
        else {
                $newuser->set('email', strtolower($vbulletin->GPC['vb_login_username']));
                $newuser->set('username', $myuser);
                $newuser->set('usergroupid', 9);
                $newuser->set_bitfield('options', 'adminemail', true);
                $newuser->set_bitfield('options', 'emailonpm', true);
                $newuser->set_bitfield('options', 'vm_enable', true);
                $newuser->set('pmpopup', 1);
                $newuser->set('password', $passwd);
                $newuser->set('ipaddress',$ip);
                }
        // Return errors if there are any
        if ($newuser->errors) {
                process_logout();
                eval(standard_error("Error creating/updating user<br/>" . $newuser->errors[0]));
                }
        // If not, save user
        else {
                $newuserid = $newuser->save();
                }



All times are GMT. The time now is 12:15 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00899 seconds
  • Memory Usage 1,717KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete