Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-15-2010, 09:19 PM
Trek Trek is offline
 
Join Date: Sep 2003
Posts: 664
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Single Signon, how?

I've done several forum searches here as well as the web in general and haven't really found anything that has answered the question. Several threads about people doing it, but not how they did it.

In short, I have two systems. When someone logs into the "other" system, I want them to seamlessly (ie, behind the scenes) be logged into vB as well.

Ideally I would have a function that I could call that I would pass the Username and password the user has entered (from the other system) into it, have this function authenticate whether it's a good match or not. If it's a good match, it should log the person into vB and return a true value, if it fails, it should return either just false or an error message.

Any help on this would be very much appreciated, thanks!

--------------- Added [DATE]1284609922[/DATE] at [TIME]1284609922[/TIME] ---------------

Ok, I'm getting closer, could use help though! =)

Using the below code in any PHP file, replace the DOMAIN, USERNAME and PASSWORD areas with appropriate info.

When you run it, it says "Thank you USERNAME for logging in." and all looks well. However, you aren't actually logged in. Seems as though it just passes the general verification, but doesn't do any of the session variables and/or cookies.

That's where I need the help, any idea what next?

Code:
<?
    $forum_root = "http://www.DOMAIN.com/";
    $login_page_url = $forum_root."login.php?do=login";
    $postfields["vb_login_username"] = "USERNAME";
    $postfields["vb_login_password"] = "PASSWORD";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $login_page_url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 100);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $postfields["s"] = "";
    $postfields["SECURITYTOKEN"] = "guest";
    $postfields["do"] = "login";
    //$postfields["vb_login_md5password"] = "";
    //$postfields["vb_login_md5password_utf"] = "";

    ?>
    <script type="text/javascript" src="<? echo $forum_root; ?>clientscript/vbulletin_md5.js?v=406"></script>
    <SCRIPT LANGUAGE="JavaScript" TYPE="TEXT/JAVASCRIPT">
    <!--
        md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)
    //-->
    </SCRIPT>

    <?
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    $cdata = curl_exec($ch);
    curl_close($ch);
    
    echo "<hr>$cdata<hr>";
    

?>
--------------- Added [DATE]1284666786[/DATE] at [TIME]1284666786[/TIME] ---------------

No one? Not even a nudge in the right direction?
Reply With Quote
  #2  
Old 09-18-2010, 12:00 AM
Trek Trek is offline
 
Join Date: Sep 2003
Posts: 664
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nevermind, I got it figure out.

Code:
<?
require_once('./global.php');
require("includes/functions_login.php");

// Returns true/false
    $res = verify_authentication("USERNAME", "PASSWORD", md5("PASSWORD"), md5("PASSWORD"), true, true);

exit();
?>
Not 100% sure about the second MD5 password field as it's supposed to be UTF(8?) or something. Anyway, all I know is, it worked for me this way. Hope it helps someone else out.
Reply With Quote
  #3  
Old 09-21-2010, 01:45 PM
Matt L Matt L is offline
 
Join Date: Sep 2010
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm trying to the exact same thing. How did you get it to work exactly?
Reply With Quote
  #4  
Old 09-21-2010, 05:42 PM
Trek Trek is offline
 
Join Date: Sep 2003
Posts: 664
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Matt L View Post
I'm trying to the exact same thing. How did you get it to work exactly?
Well, the above code I posted works, however, the problem comes into play when vB isn't loaded at all. So you're coming from a completely clean browser cache/session cache.

In which case, as soon as you include these files, vB takes over and loads it's own pages, etc. I tried a few things to silently do the login, but all have failed so far. So... the above isn't really a good solution in that case. At this point, I haven't really solved it.

I've moved on to data synchronization between our systems as that is the more important issue for us and will revisit the single signon after that is complete.

Sorry I don't have a better answer for you, but... that's all I've got. If you find a way to do it, please reply back in this thread for myself and anyone else looking for the answer.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:32 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07090 seconds
  • Memory Usage 2,189KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete