I’m an admin. Most of what I do with PHP and MySQL is maintain. [On rare, rare occasions, I work on code. Now that I'm back in graduate school, rare is also defined as "never".] One problem that I see that desperately needs solving: a common user database that has great, simple API hooks.
What’s the point?
If you have more than one package that uses PHP to manipulate and represent MySQL data, you’ve undoubtedly wished for commonality in your user databases. If you run a Weblog-as-CMS and a forum, you’re probably wishing, “Man, why can’t WordPress and phpBB talk to each other?” [I mention those two only because they're the most popular such choices; I've largely moved from phpBB to SMF, and I'm also experimenting with TextPattern as a WordPress replacement in situations where it might be more attuned to my needs.] I think they should.
What are the parameters you’d need?
This database needs to be dead simple, because having data in a separate table [or database] just adds complexity to the query, and this complexity will add overhead. So, with a minimalist ethos being the wind beneath our wings, let’s take off:
User_id: A simple incrementing counter. Because this is stored as an integer, it’ll be useful to have for your API hooks, because you’re passing smaller and more digestible data than the username [see below].
Username: User’s email address. Having a separate username and email makes no sense to me—and because people do change their email addresses and often forget who all has the old one, having the username as the user-email solves all sorts of issues. Not only is this good for the user, but it’s also good for the administrator—no more table lookups to find the username of someone who emails you with a lost account request!
Password: Stored as an MD5 hash of the user input. This is industry standard.
Date created: Automagically generated.
Date modified: Automagically generated. This is important because it’s good to have a record of when stuff is changed for security purposes.
User handle / display name: It’s important to have this in the system, because a good package like this should never display the user’s email address to all the screen-scraping spammers of the world. Also, we don’t want confusion when people change their email addresses.
And that’s really it. Authentication should be handled with cookies, and API hooks should support sessions.
This would be a hugely beneficial open-source project, and should be licensed liberally rather than with the GPL, because I don’t want to see commercial products locked out of this. Commonality is an important thing.
[And yes, some will argue that this is very close to LDAP, or that you should make it Kerberos-like. Knock yourselves out---I haven't seen a good implementation of either in the Web-based scripting environment of the day.]