Запуск скомпилированной программы C ++ как CGI - PullRequest
1 голос
/ 14 апреля 2011

Мы собираемся добавить аутентификацию по отпечатку пальца в приложение для iPad; Поскольку мы не смогли найти какое-либо реальное оборудование для отпечатков пальцев, которое работает с iPad, мы нашли DigitalPersona, которая является поставщиком отличного оборудования для сканирования отпечатков пальцев, а также SDK для Linux C / C ++. Идея состоит в том, что пользователь будет нажимать «аутентифицировать по отпечатку пальца», что отправит запрос RESTful в окно linux со сканером отпечатка пальца; в окне linux будет запущена скомпилированная программа C ++, которая ждет, пока пользователь просканирует свой палец, определит совпадение или отсутствие совпадения и отправит этот ответ обратно на исходный запрос программы iPad.

Итак ... с очень небольшим опытом C ++ и еще меньшим CGI (но с большим количеством PHP и Objective-C), мне было интересно, возможно ли это технически. Может ли двоичный файл CGI, к которому осуществляется доступ через HTTP, действительно ожидать локального ввода данных пользователем (с консоли), прежде чем отправлять результат в запрос HTTP?

Окно linux будет работать без головы, и мы будем управлять некоторыми светодиодами, чтобы помочь пользователю узнать, что программа ожидает сканирования отпечатка пальца.

НЕКОТОРЫЕ Дополнительные детали: PHP не планируется использовать. Изначально мы хотим три устройства: IPad Linux Сервер

На iPad запущено приложение с биометрической аутентификацией IBOutlet; В Linux есть сканер отпечатков пальцев и базовый Apache; Кроме того, C ++ SDK для сканера отпечатков пальцев, который мы использовали бы для создания программы CGI, которая при вызове (сервером) ожидает сканирования пальца и после сканирования отправляет «соответствие» или «не соответствует» запрашивающий. Сервер будет запрашивающим. Как только он получает запрос от приложения для iPad, он вызывает программу CGI на компьютере с Linux, ожидая запроса «соответствует» или «нет соответствия».

Другой член моей команды предложил это: iPad запускает приложение; пользователь нажимает «авторизация с отпечатком», и iPad находится в состоянии «ожидания» В Linux есть сканер отпечатков пальцев, пользователь сканирует отпечатки пальцев, и отпечатки пальцев отправляются на сервер через HTTPS. Сервер получит отпечаток пальца и сопоставит его с пользователем. затем проверяет, находится ли какой-либо iPad в состоянии «ожидания», и какой пользователь инициировал его. Если он совпадает с пользователем, прошедшим аутентификацию по отпечатку пальца, он примет данные iPad как подлинный удар и выведет iPad из состояния ожидания.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011
1 голос
/ 14 апреля 2011

Есть два основных способа сделать это; Вы могли бы заставить свою функцию PHP вызывать внешнее приложение через exec или написать внешний CGI на C ++ напрямую, используя RudeCGI , Cgicc или freeCGI . На ваш выбор множество библиотек.

0 голосов
/ 14 апреля 2011

Почему CGI нужно ждать ввода пользователя?Вы можете скорее вызвать CGI после получения ввода от Iphone и отправить его в CGI ... Тогда вам просто нужно прочитать ответ CGI от Iphone ...

...