On a clean installation of v2.01, I receive an error message when enabling ProxyConnect:
Fatal error: Class Gdn_ProxyAuthenticator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Gdn_IHandshake::GetUserEmailFromHandshake) in D:\xampp\htdocs\dbtest\community\plugins\ProxyConnect\class.proxyauthenticator.php on line 332
My forum remains inaccessible as long as I manually remove everything related to the plugin and $Configuration['Garden']['Authenticator'] from my config.php.
Comments
Sorry for the inconvenience, but I think you'll like the changes :)
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
'insert into GDN_UserAuthentication (UniqueID, UserID) values ($YourAdminUsersUniqueID, 1);'
However, UniqueID column doesn't exists in the GDN_UserAuthentication table. Rather two columns-ForeignUserKey and ProviderKey-- exists along with UserID column in the table. The documentation seems to be outdated. I am looking at the white-screen-of-death now.
public function GetTokenKeyFromHandshake($Handshake) {
and add the following snippet right after it (do not replace it, just append it):return ''; // this authenticator doesnt use tokens
}
public function GetUserEmailFromHandshake($Handshake) {
return ArrayValue('Email', $Handshake, FALSE);
}
Thanks for the update. Any idea of a time frame for these updates? I am debating whether or not I should write a custom authenticator for our project or not.
Also, when using ProxyConnect, is there any way to skip the "Give me a new account"/"Link My Existing Account" screen? We just need our existing users to have a new account generated as soon as they are authenticated by ProxyConnect.
@eleith thankyou
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
This version contains quite a few updates and changes, and is unfortunately not backwards compatible with 2.0.1.
We'll be making 2.0.2 available shortly, but I've left the version requirement 2.0.2a on the plugin so that you can use it with the current unstable code at http://www.vanillaforums.org/download/nightly.
New config settings:
Garden.Authenticator.SyncScreen- TRUE by default, this setting allows you to disable the "Link Accounts" screen during new SSO user signup.Garden.Authenticators.proxy.AuthField- This setting allows forum administrators to decide which remote field should be considered the UserKey when creating a new user via SSO. Defaults to 'UniqueID'.The biggest change in this release and with 2.0.2 in general is the consolidation of authenticator configuration in a single menu item on the dashboard. Settings can be affected via the Users > Authentication submenu.
P.S. a new dashboard theme is coming and will improve the look and feel of this section.
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Works for me. How about you?
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Will do some more testing...
I found the SyncScreen setting in config-defaults, but where is the AuthField setting?
I'm not sure which way is 'better' from a clarity standpoint. What do you think?
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
haven't figured it out fully, but the problems i stated seem to be related to other things...
But here's another concern:
Would be possible to remove the 'Edit my account' and 'Change password' menus when ProxyConnect is enabled and maybe display a link to wp's profile page instead? It might be confusing if users tried to change their credentials from within vanilla.
If the username / email is already in use, we fail silently and the user is not logged in.
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
1) git pull on vanilla master is only 2.0.1 right now, had to switch to branch unstable to get 2.0.3
2) my proxy auth page uses json instead of ini, any chance the following snippet can make it into the next update of ProxyConnect?
if(Gdn::Config('Garden.Authenticators.proxy.Encoding', 'ini') == 'json')3) i'm stilling getting pushed to the DefaultController regardless of original page requested, so i needed to change the following line and comment out the redirect$Result = @json_decode($Response, TRUE);
else
$Result = @parse_ini_string($Response);
if ($AuthResponse == Gdn_Authenticator::AUTH_SUCCESS) {in the end it all works, thanks for the update!#Gdn::Request()->WithRoute('DefaultController');
Gdn::Request();
}
This is of course possible, as you know. The only hesitation I have is as follows:
Currently ProxyConnect for Wordpress (and by extension for any other external application) consists of only 2 parts. 1) the Vanilla-side ProxyConnect plugin which handles all of the authentication and user creation from Vanilla's perspective, and 2) the remote plugin, which allows Wordpress to output the correct information for Vanilla's backchannel socket connection when requested.
The Vanilla-side plugin is currently extremely generic and has no concern about what type of remote authenticator is being plugged into it. The Wordpress-side plugin is very Wordpress specific (as you would expect), but this is OK since it is being installed only in Wordpress and has just one very specific set of tasks.
In order to modify links on Vanilla's side, we have 2 options:
1) Require a 3rd plugin, on Vanilla-side, specific to Wordpress (or whatever application was being "SSO'd"). This plugin would take control of the specific links we wanted to override (Edit my Account, Change Password, etc) and forward them to WP. No configuration would be necessary, but installing ProxyConnect plugin would have an additional step and thus be more complicated.
2) Add additional generic fields in the ProxyConnect dashboard config area, containing links to the User Account and Change Password pages of the remote authenticator site (WP in this case). These fields would not be specific to Wordpress, but rather apply broadly to any foreign application being SSO'd and allow forum administrators to conditionally override these links. The down side is that the config form would get much larger and more complex, and we would lose the ability to customize Vanilla specifically for WP SSO.
I hope I've been able to explain this properly, let me know if anything is unclear. What are your opinions as the potential users of this software? Which way is better/easier/clearer?
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]
Otherwise, where would I start if I wanted to change the way the user menus are displayed? Does it need to be an add-on or could this be achieved by creating a customised theme?
As I'm not really that PHP type of guy, I like the way you can modify or filter almost everything in WordPress via a 'functions.php' file in your theme folder. Does Vanilla offer a similar functionality?
http://vanillaforums.org/discussion/12341/single-sign-on-proxyconnect-instructions-out-of-date-/#Item_2
http://vanillaforums.org/discussion/12318/proxyconnect-doesnt-redirect-to-login-page/#Item_8
I also responded to your other question regarding the signinloopback issue. Please get back to me asap.
Vanilla Forums Senior Developer [GitHub, Twitter, About.me]