Проблема нескольких устройств решается созданием хэшей под каждое устройство. Т.е. хэш куки храним не в таблице с пользователями, а в отдельной таблице. Один пользователь сможет иметь несколько хэшей. Там же добавляем User-agent. IP может сменится даже в рамках одного провайдера при разных подключениях, запрашивать пароль в этой ситуации совсем не логично. Но если стоит вопрос о выходе после часа бездействия, то можно и IP добавить. Предложенный метод позволит менять хэш при каждом запросе, если на то есть желание.