Have at least one other person look over your code. It's easy not to notice problems in your own code, that stand out to others.
See if any existing well known authentication systems fit, before re-inventing the wheel. Odds are they've been looked over quite well over time.
Keep it as simple as possible. Think any special security features through. It's not uncommon to add a feature meant to increase security, that actually makes it worse.
Obviously keep everything patched, but attempts at password stealing/sharing/brute forcing is more common than attempts to hack into a pay site. (at least the ones I've worked with)
Hope this helps.
Update: All the above advice assumes you're using a 3rd party processor, so you only have to deal with authentication, not actual credit card/payment data.