Что лучший способ состоит в том, чтобы расширить restful_authentication/AuthLogic для поддержки ленивых логинов анонимным iPhone?

private <T extends HasColor> List<T> removeSameColor(List<T> list) {
        Set<String> colorSet = new HashSet<>();
        Iterator<T> iterator = list.iterator();
        while (iterator.hasNext()) {
            if(!colorSet .isEmpty() && colorSet .contains(iterator.next().getColor())) {
                iterator.remove();
            }
            else{
                colorSet.add(iterator.next().getColor());
            }
        }
        return list;
    }

Затем Computer и Car реализуют новый интерфейс, HasColor:

interface HasColor {
    String getColor();
}

Если вы используете Java 8 или выше, есть более простая альтернатива:

Set<String> seen = ConcurrentHashMap.newKeySet();
return list.stream()
    .filter(t -> seen.add(t.getColor()))
    .collect(Collectors.toList());

Это приведет к дедупликации списка в соответствии с различимостью цвета каждого элемента списка.

8
задан Kevin Elliott 12 August 2009 в 02:52
поделиться

4 ответа

Я думаю, что Вы не должны использовать один только телефонный идентификатор для аутентификации, поскольку это не секрет, и это является, вероятно, также отгадываемым/предсказуемым. Не забывайте, что, если кто-то хотел взломать Ваше веб-приложение, они не должны использовать Ваш код - они могут просто предположить идентификаторы устройства и попытку смешать с Вашими пользовательскими данными с помощью любого веб-клиента.

Необходимо рассматривать идентификатор устройства, подобный имени пользователя - это для идентификации и не аутентификации. Я предлагаю, чтобы Вы заставили пользователя выбирать пароль или еще лучше генерировать случайный код автоматически, для движения с ним - затем отправляют идентификатор устройства + этот пароль/код, чтобы зарегистрировать устройство во-первых и затем впоследствии аутентифицировать устройство.

Можно также держать пари, что у некоторых пользователей будет больше чем одно устройство - или они заменят тот в конечном счете, или Вы получите кого-то как Stephen Fry, который бродит вокруг с 4 iPhone. Для контакта с этим, я предложил бы, чтобы Вы искали способ инстанцировать restful_authentication дважды, однажды для аутентификации пользователей и во второй раз для аутентификации устройств. Я не использовал этот плагин, но я ожидаю, что просто необходимо использовать различные параметры таблицы, чтобы заставить это произойти. Затем в Вашей прикладной логике позволяют пользователям связывать больше чем одно устройство со своей учетной записью.

Чтобы сделать это надежно или делает это от устройства или имеет дисплей устройства случайный код, который они затем вводят в веб-приложение, чтобы доказать, что они владеют устройством (это звучит более болезненным, чем это - это - тот же процесс, что использование яблока в iTunes, ТВ яблока и удаленном приложении - смотрит на то, как они делают это - таким образом, не случится так что, удивляя для пользователей).

(Также удостоверьтесь, что при генерации любых случайных паролей Вы используете криптографический генератор случайных чисел в качестве основания - существует, вероятно, iPhone API для этого - иначе, Ваши пароли могут быть предсказуемыми).

6
ответ дан 5 December 2019 в 22:21
поделиться

Генерируйте случайный пароль в тексте ссылки направляющих, я использую плагин Restful_authentication для одного из моих проектов. Как часть моего пользовательского рабочего процесса создания, система должна для генерации случайного пароля для нового пользователя.

0
ответ дан 5 December 2019 в 22:21
поделиться

Вы попытались использовать другую подлинную схему как Authlogic? Я нашел restful_authentication довольно навязчивый (хотя я обманул при помощи борта).

0
ответ дан 5 December 2019 в 22:21
поделиться

Что вы думаете об использовании UDID и случайного пароля, сгенерированного с использованием UDID + соли, определенной на всем сайте?

Что-то вроде:

salt = 'afG553Dvbf3'

udid = '1234567890'
pass = Digest::MD5.hexdigest(udid + salt)

И отправьте этот пароль на iPhone в следующий раз подключится.

0
ответ дан 5 December 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: