Нужна ли нам вообще аутентификация пользователя?

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

Другой метод аутентификации — через OAuth или с использованием стороннего поставщика аутентификации, такого как Google. Однако в этой статье я познакомлю вас с передовой технологией аутентификации под названием FaceIO аутентификация с распознаванием лиц. Этот инновационный подход — отличный способ входа пользователей в ваши системы, и я покажу, как интегрировать эту технологию в приложение React посредством разработки простого приложения.

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

Почему распознавание лиц?

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

Еще одна веская причина рассмотреть возможность распознавания лиц заключается в том, насколько просто включить эту технологию в ваше приложение. Чтобы проиллюстрировать это, мы создадим приложение React, использующее FaceIOтехнологию распознавания лиц, которая теперь возможна благодаря fio. js. Эта библиотека берет на себя всю сложную работу за нас, упрощая использование распознавания лиц.

Третья причина рассмотреть возможность аутентификации по распознаванию лиц — это удобство для пользователя. При использовании этого метода пользователям не нужно запоминать пароли или любые другие сложные учетные данные для входа. В случае FaceIO можно добавить двухуровневую защиту пользователя с помощью PIN-кода. Все, что требуется от пользователя, — разрешить камере сканировать его лицо, и процесс аутентификации завершен. Эта простота и легкость использования являются важными факторами в улучшении общего пользовательского опыта.

Безопасность пользователя с аутентификацией по распознаванию лиц

Для пользователя безопасность данных имеет первостепенное значение, и каким бы отличным ни было приложение, если данные не защищены, пользователям может быть неудобно их использовать. Однако распознавание лиц — чрезвычайно безопасный способ аутентификации пользователей. Почему это? Причин несколько:

Во-первых, FaceIOсоблюдает применимые законы о конфиденциальности, такие как GDPR, CCPA и другие стандарты конфиденциальности. Эти законы могут налагать на предприятия значительные финансовые санкции, которые могут составлять до 4% от их годового дохода, за нарушение прав пользователей на неприкосновенность частной жизни. Более того, FaceIO очень серьезно относится к конфиденциальности и безопасности данных и не хранит изображения пользователей. Вместо этого он хранит только хешированный ключ изображения, гарантируя, что фотографии останутся безопасными и конфиденциальными.

Во-вторых, FaceIO славится своей высокой точностью. Точность движка FaceIO составляет невероятные 99,8%, что действительно является исключительным. Как человек, имеющий опыт работы в области искусственного интеллекта, я могу подтвердить, что достижение такого высокого уровня точности чрезвычайно сложно и требует огромного количества данных, которые могут быть очень дорогостоящими.

Подводя итоги, FaceIOсоответствует законам о конфиденциальности и обеспечивает высокий уровень точности, что делает его отличным выбором для компаний, которые ищут безопасный и надежный метод аутентификации для своих приложений. С FaceIO предприятия могут быть уверены, что данные их пользователей в безопасности, а их система аутентификации очень точна и эффективна.

Создание системы входа с помощью FaceIO

Давайте погрузимся прямо в реализацию приложения, так как действия говорят громче, чем слова.

Приложение, которое мы будем создавать, простое. Он состоит из трех кнопок: одной для регистрации, одной для войти и третья кнопка, чтобы выйти. Приложение работает по простому принципу: вы сначала регистрируетесь, а затем входите в систему. В этот момент появится кнопка выхода, которая ранее была скрыта, а остальные кнопки исчезнут. Готовая версия приложения, которое мы собираемся создать, доступна для просмотра по следующей ссылке: https://housseinbadra.github.io/FaceIodemo.github.io/.

Теперь, чтобы начать, вам нужно создать собственную учетную запись FaceIO. Регистрация учетной записи проста, если у вас ее еще нет. Если у вас есть учетная запись, войдите в систему и будьте готовы продолжить. Чтобы зарегистрироваться в FaceIO, нажмите здесь: https://console.faceio.net/.

После регистрации вы получите Public ID, связанный с вашим приложением, что-то вроде fio9362. Если вы хотите получить доступ к нашему приложению, нам потребуется этот общедоступный идентификатор.

Когда ваша учетная запись настроена, пришло время начать кодирование. Как я упоминал ранее, это приложение будет создано для мобильного телефона. Все, что вам нужно, это три файла: index.html, index.css и index.js. Вы можете загрузить любой редактор кода или даже использовать CodePen, если хотите. Я выбрал редактор SPCK, который является отличным инструментом. Создайте папку, а затем создайте эти три файла.

Ваша файловая структура должна выглядеть так:

Добавление этих стилей завершит вашу работу с CSS, так что давайте начнем.

body{
  width:100vw;
  height:100vh;
  box-sizing:border-box;
  font-size:10vh !important;
}
.app{
  width:100%;
  height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
}

Чтобы начать интегрировать технологию распознавания лиц в ваше приложение, вам необходимо выполнить несколько шагов. Во-первых, вам нужно добавить React, React Dom и CDN Babel в заголовок вашего HTML. страница. Затем добавьте на свою страницу CDN Bootstrapтолько для CSS и свяжите его с файлом CSS.

Затем создайте два элемента div с идентификаторами «root» и «Faceio-modal». Вы можете добавить эти div в любом месте на вашей HTML-странице. Раздел «root» будет содержать ваше приложение React, а раздел «Faceio-modal» будет использоваться. для отображения модального окна распознавания лиц.

Чтобы связать свой файл JavaScript, добавьте тег script с типом «text/babel» в конец вашего тела. Обязательно свяжите этот тег скрипта с вашим файлом index.js.

Наконец добавьте CDN fio.js в конец вашего тела. Это позволит вам использовать технологию распознавания лиц FaceIO в вашем приложении. Выполнив эти шаги, вы готовы начать использовать распознавание лиц в своем приложении.

Ваш HTML-файл должен выглядеть так:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>FaceIO demo</title>
  <script crossorigin src="https://unpkg.com/[email protected]/umd/react.development.js"></script>
  <script crossorigin src="https://unpkg.com/[email protected]/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href='./index.css'>
  
</head>

<body>
<div id='root'></div>
<div id="faceio-modal"></div> 
<script src="https://cdn.faceio.net/fio.js"></script>
<script src="index.js" type='text/babel'></script>
</body>

</html>

Переходя к файлу JavaScript, мы можем получить доступ к React, React Dom и FaceIO в качестве глобальных переменных, так как мы использовали CDN. Однако одним из недостатков этого подхода является то, что мы не можем использовать операторы импорта. Чтобы обойти это ограничение, мы устанавливаем тип индексного файла text/babel. Это необходимо для того, чтобы редактор кода правильно распознавал синтаксис JSX и избегал ошибок. В более сложных проектах рекомендуется использовать сборщик, например Webpack или Parcel, для эффективного управления зависимостями и импортом.

Хотя этот конкретный проект относительно прост, для более сложных проектов рекомендуется создать отдельную папку компонентов. Для этого вы можете использовать «npm create-react-app». В нашем текущем проекте мы будем использовать деструктуризацию объектов вместо импорта для достижения той же цели. После этого мы можем приступить к созданию компонента приложения.

const {createRoot , render} = ReactDOM
const {useEffect,useState}=React

После того, как пользователь войдет в систему, важно следить за ним, поэтому для этой цели будет создано состояние, и будет объявлена ​​константа `io`, чтобы FaceIO доступен.

const [user,setuser]=React.useState('')
 const io=new faceIO('your public key')

Теперь создайте 3 вспомогательные функции:

Функция выхода из системы сбросит значение пользователя на пустую строку, а функция регистрации позволит нам регистрировать новых пользователей в нашем приложении. В процессе регистрации мы можем связать идентификатор с каждым пользователем, который будет храниться в базах данных FaceIO. Код функции регистрации доступен на странице API веб-сайта FaceIO, перейти на которую можно по этой ссылке: https://faceio.net/integration-guide. Не стесняйтесь изменять функции в соответствии с вашими конкретными требованиями.

function logout(){
    setuser('')
    window.location='./'
  }
  function register(){
    io.enroll({ "locale": "auto", 
    "payload": { UID: Date.now() } }
    ).then(userInfo => {
    alert( `User Successfully Enrolled!
    Details: Unique Facial ID: ${userInfo.facialId}
    Enrollment Date: ${userInfo.timestamp}
    Gender: ${userInfo.details.gender}
    Age Approximation: ${userInfo.details.age}` );
   ;}).catch(errCode => {
   console.log(errCode) })
  }

Следующим шагом в разработке нашего приложения является реализация функции входа в систему. API fio.js предоставляет необходимый код для этой функции, который можно настроить в соответствии с нашими требованиями. В моем приложении, когда пользователь входит в систему, я назначаю состояние пользователя UID (уникальному идентификатору) этого пользователя, чтобы отслеживать его активность. При управлении более крупным приложением мы можем использовать файлы cookie и другие передовые методы, но для целей этой демонстрации я сделал все просто. Если вы хотите узнать больше об управлении приложениями, перейдите по этой ссылке: https://faceio.net/getting-started.

  function login(){
    io.authenticate({ "locale": "auto" })
    .then(userData => { console.log("Success, user identified") 
                        console.log("Linked facial Id: " + userData.facialId)
                        setuser(userData.payload.UID) })
    .catch(errCode => { console.log(errCode) })

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

  return(
    <div className='app'>
    {!user? <div>
<button type="button" className="btn btn-outline-primary m-5" onClick={register} >Register</button>
<button type="button" onClick={login} className="btn btn-outline-info m-5">Login</button></div> : 
<button type="button" onClick={logout} className="btn btn-outline-primary">Logout</button>}
</div>)

Чтобы отобразить приложение в представлении, мы можем использовать метод React `render()`. Поскольку мы используем React 18, мы можем создать переменную `root` и присвоить ей значение элемента `div` с идентификатором `root`. Затем мы можем вызвать `ReactDOM.render()` и передать компонент `App` в качестве первого аргумента, а `root` переменная в качестве второго аргумента. Это отобразит компонент `App` в DOM.

const root = createRoot( document.getElementById('root')); 
root.render(<App/>);

Когда кодирование завершено, пришло время разместить проект на GitHub. Первый шаг — создать репозиторий GitHub и дать ему имя, например `myfacerecognition.github.io`. После создания репозитория следующим шагом будет загрузка файлов проекта на GitHub. Это можно сделать, используя Git для инициализации локального репозитория, подключив его к репозиторию GitHub, а затем отправив локальные файлы на GitHub.

После того, как файлы были загружены, нам нужно подождать примерно 5 минут, пока сайт не будет создан. После создания сайта доступ к нему можно получить по URL-адресу: https://username.github.io/repositoryname. В этом случае это будет https:// myfacerecognition.github.io. И теперь проект запущен и доступен для публики.

И теперь мы закончили программировать, и пришло время разместить этот проект на GitHub. Просто создайте репозиторий GitHub и задайте для него имя myfacerecognition.github.io. После этого загрузите файлы на GitHub и подождите 5 минут, пока ваш сайт не будет создан. И мы закончили.

Заключение:

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

Если вы хотите узнать обо мне больше, вы можете посетить мой веб-сайт по адресу https://houssein.in/. Для получения дополнительной информации о FACEIO и его возможностях посетите их веб-сайт по адресу https://faceio.net/

ключевые выводы

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

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

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

Ссылки для начала

Если вы новичок в FACEIO, я рекомендую начать с руководства FACEIO менее чем за 5 минут, которое дает краткое введение в основы.

Хотите интегрировать FACEIO на свой сайт? Наше Руководство по интеграции FACEIO — идеальный ресурс для вас. Он включает в себя пакет fio.js, который позволяет легко интегрировать технологию распознавания лиц.

Чтобы получить исчерпывающую документацию, фрагменты кода и инструменты для беспрепятственной интеграции FACEIO на ваш веб-сайт, посетите наш Центр разработчиков.

Если у вас есть какие-либо вопросы, в нашем разделе Часто задаваемые вопросы вы найдете быстрые ответы на часто задаваемые вопросы.

В FACEIO приоритетом является ваша конфиденциальность и безопасность. Узнайте больше об их надежных мерах безопасности в Центре доверия.

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу