Ставить куку с именем admin или is_admin я думаю даже обсуждать не стоит. Ставить куку user_id для идентификации пользователя тоже как то стрёмно. Как вообще правильно защититься от атак с подбором значения кук ? Понятно, что кто угодно может слать запросы с кукой user_id = 1, а этот юзер это например админ.
Куки должны быть зашифрованы. Вместо user_id = 1, должно быть что-то вроде user_id = eyJpdiI6ImoremQwVmF5UlVzVHFtNTFKY1wvMGFRPT0iLCJ2YWx1ZSI6IjYzUnNsdlpQTkJIeTdPZUtDeTNCQnNPdUJBTytzdHpuZGVNRWhzTEZrak5FRG82WkE5b01KelhnajhZd3ltRXBxMldmaXZRWXVWQ1IrN3h4UGhWMWtHSjhNZ20rOUpMUVwvNVNNTkJicFZ1TT0iLCJtYWMiOiIxZTI4YjExY2JmNjliYTEzMGY1ODUzODY2Mjc2ZTg3NmI3YTBkMTY0MGQwZjI1Y2YwNGQ3ZmZkZjBhNTY5NTczIn0%3D
И пусть подбирают на здоровье.
Глеб Жуков: Это делается так:
Вы в БД с пользователями заводите поле token, когда пользователь ввел логин+пароль и авторизовался, вы генерируете случайную строку и сохраняете в этом поле. Эту же строку вы отдаете пользователю, он сохраняет ее к куки. Теперь вы в каждом запросе получаете токен из кук пользователя и ищете в БД пользователя с таким токеном.