Hi!
I've been working on a website for a while now and researching the various options for drop-in authentication, and I'm impressed with UserSpice as it almost (almost) meets all of the requirements that I have.
I am sure I have a laundry list of things I'd like to see, and as I become familiar with the product, I'll learn to write them in a UserSpice friendly way. Off the top of my head, a few things are keeping me from transitioning over.
1. Now that you have social logins, the only two I need to finish this are Twitter and LinkedIn. I wrote code to do this on my 'old site' and it's not all that different from Oauth2 for Facebook. The more social logins that are supported, the more useful this will be, and perhaps there is some tutorial that makes it easy to set these up.
2. A contact form that sends an email. If the user is logged in, fill in their contact info, if not, allow them to still send it.
3. AJAX forms. I really like using jQuery and Ajax to reduce amount of data required for forms processing, it would be cool to do this.
4. Birthdate. It's somewhat important, at least from my perspective, that new users indicate they are over the age of 13. There are legal reasons for this. My site is not an adult site, but collecting data from users under the age of 13 is somewhat of a quagmire. I imagine that I could just put this into the TOS but I also like to have birthdates for profiles and things.
I am sure there are plenty of nuances and features I would like to see here, but these are the items keeping me from just hopping on the bandwagon, and leaving the authentication problem to UserSpice, and focusing on the internals of the website.
Thanks for your efforts, hopefully it will meet the need.
OH... before I run along and play with my install... I have several wordpress installs on the server. I would like to know where to put some code to run after signup / verification so that the user is replicated into these other databases.
1. Linkedin and Twitter weren't on my list, but they're probably doable. I'll look into it.
2. I'm tinkering with an internal message system now as a request from a user. Creating a regular contact should not be hard, but if you wanted to make one, the sendmail features are built in so you should be able to make one for your system.
3. AJAX is awesome but it has introduced a LOT of compatibility issues. It's usually not super hard for people to use AJAX for their own forms, but one of the things that happens is that Userspice gets installed on a bajillion server platforms and works on pretty much all of them out of the box. With AJAX my experience has been that things break and I have pretty much no way of figuring out what's wrong remotely. I do use it for some of my internal apps though.
4. You're totally allowed to add columns to the users table and copy the form over to usersc and add any options you want. It won't break the system
5. We have after login and logout scripts, but an after signup script is a brilliant idea. That's going on the list.
1. In the course of my own efforts I looked at a very large number of Oauth provider libraries for PHP.
I was able to get Twitter and LinkedIn working using this library / set of files (without UserSpice):
https://www.phpclasses.org/package/7700-...OAuth.html
I do not want to put this fellow down because he has done a lot of work and I certainly respect the effort. That said... It is somewhat sloppy. It's not intended to be drag and drop.
There should be enough there for you to look at and add Twitter and LinkedIn. I started looking at VKontakte, the Russian Facebook, but they do some things which make it tricky to get the user's email account.
2. I have the Bootstrap HTML for this already written and I've written a ton of contact forms. I'd be curious where to drop the files and what sort of data validation / security is built into UserSpice that would allow me to write this as if it was part of the project. The stuff I just don't want to write / worry about (again / better) is Signup, Login, Verification, Lost Password, Logout, and Contact Form. You are right in your videos that these components are boring and are prohibitive to getting things off the ground.
3. I can certainly see where this would be a problem. The best way I have found to implement AJAX processing on the server is using the Flight API library for PHP. It's a nice way to consolidate code into one file for handling AJAX forms. Very tight and tiny.
4. I stumbled on a tutorial and have not had time to look that over yet.
5. It appears that after login and signup we are directed to a page with a gravatar and some options, I am going to look this over, what I really need is for them to be dropped into the 'members' page of the site which has it's own options and so on, and would probably need to dump the gravatar in favor of a locally managed avatar image.
I like the project, so far it's the closest to what I really need out of the many different User Auth solutions for PHP.
I will take a look. It's probably going to be a little while before I can add more oAuth options, but it will happen. One of the most difficult things is that most solutions are designed to make a "new" account when you sign in with them. I'm using your email address as an anchor, so no matter which system you sign up with first, you still have one account with the same permissions.
To change where you go after login, go to usersc/scripts/custom_login_script which will allow you to put whatever you want in there (usually a redirect).
A. I can understand the challenges. My system basically winds up doing what you are saying, where a twitter login creates an account, and a google login the same, and it does create a mess. I've seen solutions where users have the ability to 'link' their accounts, they login with a primary and then go to a backend and initiate oauth requests to the other services.
It's a headache, for sure. When I signed up for Twitter, I used a different email than I used for Google+, and a different email than I used for Facebook. So I certainly understand taking the time to *try* to find a solution.
Ultimately, I'm not even sure that social logins are a 'good idea'.
B. Thanks for this bit of information. I'll see if it lets me hook in the way I want.
C. One other thing I need to figure out. I have several wordpress installs on my server. They allow a little functionality here, a little functionality there, useful to save development time, but there's a gotcha, and it falls into the userspice ballpark. What I would like to do, is, upon completion of the registration (and perhaps verification) process, push the account into these other databases. so once someone creates an account with userspice, their login is replicated into wordpress A, wordpress B, etc. Where would I put code for that? And then on the flipside, hey, I just banned this guy or he cancelled his account, where do I put some triggers that go after that fact to update the wordpress sites? And yes just to make the problem hairier than Mike Schmidt's upper lip, what about when they change their password?
I only have a minute, but if you need multiple things to have a single sign on and deal with all that sort of stuff, that sounds like a perfect application for a Radius or LDAP server. They're both free and open source and there are wordpress, php, pc, mobile, wifi authentication systems to tie into them.
Basically everything authenticates to that one server.
http://php.net/manual/en/book.ldap.php
http://php.net/manual/en/book.radius.php
thanks for the pointer, I will look into it.
I'd love to be able to use single sign on via LDAP with US however I can't quite picture in my head how it would work.
Yeah. I have thought about ldap and radius for a while but I don't personally use either to develop it.
|