1.Данные лучше хранить в базе по одной причине для пользователя при правильно написаном коде тяжело туда попасть, а вам легче.
2. Насчет авторизации, то это всем известно, что лучше работать с сессиями. Вот на то доводы:
- Все данные хранятся на стороне сервера и манипуляция с ними запрещена пользователю
- Может быть такое что у пользователя отключены кукиси и по этой причине он не сможет авторизоватся. С сессиями эта проблема отпадает.
Есть еще море плюов в использовании сессий но на как на меня то этого достаточно. Сейчас еденици пользуются кукисами.