Customising the forum/locking down registration and automating account management with bespoke SSO and message queues (possible?)

ballen

New member
Good morning,

We currently have a highly customised version of MyBB running, and I'm interested in moving that over to XenForo (I was a HUGE fan of the VBulletin v3 days) and so wanted to check the feasibility of me "copying" what I did (I developed custom PHP code) for MyBB to see if it should work with XenForo too...

Users on our main platform (fshub.io) create an account, a "job" gets pushed to our RabbitMQ queue and a consumer (on the forum server) "takes" that information and creates a user account (directly in the MySQL DB) so that we don't expect people to register a forum account too and we can ensure that passwords can only be reset from our main website in addition to ensuring that usernames are consistent.

I have also disabled the ability to "register" an account on MyBB and prevented users from changing their avatar (instead this "hotlinks" their avatar from our main website) and so, again, changing the avatar on the main website automatically "feeds down" to the MyBB forum (and I'm hoping I can do the same with xenforo) - The way this works is that I have a "custom field" in the MyBB users table that I reference with a static URL (the avatar, when a user "updates it" (only via. our main website) is simply overwritten on our CDN each time and so, retains the original image URL).

For GDPR purposes, too, our platform (when a user requests to delete their account), will delete their main platform account (on FsHub.io) and then push another job to the queue, which is then picked up by MyBB, and the account is then deleted with all associated posts automatically.

It's also important that there might be some standard PHP function/method in xenforo that would allow me to automatically login a user (when I implement my bespoke SSO script - assumingly in the root (or "public/" - if you use such a structure) that can force login a user based on a xenforo user ID - I can query this in the DB and work that out but wanted to check that the automatic setting of session cookies are fairly straightforward (such as using an existing PHP function/method that xenforo, I would assume, might already have)?

...and finally, the other thing I want to be able to do it is to display a "Log me in with my FsHub Account" button on the forum homepage (and prevent anyone viewing the contents unless they're a "platform user") - I assume there won't be any major issue with me implementing this either? - As an example, you can see here: https://forums.fshub.io

I understand I'm asking for a ton of clarification here and hopefully it won't take you too long to confirm and would be happy to do so BUT otherwise, I completely understand that this might just be a case of "give it a try and see" and if so, I'm more than happy to do that (of course) but could I check/ask if installing and accessing a "trial" installation (as long as it's accessed via. HTTP://localhost (or HTTP://127.0.0.1) is valid/possible and allowed during the custom development/testing phase and before we deploy it live (and and which time purchase a production license?)

Thank you, in advance for your time!

Regards,
Bobby
 
Last edited:
Instead of going direct to the DB, you should invoke the XF APIs to do the work and capture the success/failures of it. There's a lot that goes on in multiple tables and the API abstracts that for you. you can probably ditch the queue and just invoke the apis in your standard code.



Turning off registration is a core option. you can control if form the board options. same with avatars (allow user to change based on user group... set to off)
you can then change the template to pull the source you have, or better, hit the API from your stuff to update the XF and do nothing more


GDPR - again, hit the API and do your thing

Logins/auth, yup, there's APIs for that

Adding a button in a template is an easy thing to do -- just create the link to your login page.


Get a demo and play with it. you might not be able to modify it without purchasing it.
 
You might find this useful.


 
Back
Top Bottom