You can do it either way you want - use the email address as the primary key, or use another external customer id field.
My personal preference would be to use another field, and have the email address be a property. The other field would be either a guid, or some other hard-to-guess sequence. I'd go this route for two reasons:
- From a security standpoint, if a developer does something sloppy like leak a guid in a url or hidden field, it's (marginally) less damaging than leaking actual customer email addresses.
- It's harder to use automation to generate a bunch of GUIDs and find a user/password match than it is to buy a list of email addresses and feed those into an automated exploit kit.
- Ease of maintenance - people change email addresses. If you use the email address as a primary key, you have to figure out how to transfer account settings.
I know this wasn't asked for in the question, but you're obviously building your own login mechanism, and it sounds like you may not necessarily overly be experienced. In the interest of helping you avoid mistakes I've personally made in the past, here's some good reading:
http://www.codinghorror.com/blog/2007/09/youre-probably-storing-passwords-incorrectly.html