Для чего мы используем электронную почту? Чаще всего, мы используем Email для регистрации и входа на различных сайтах, а также чтобы держать связь с этими сайтами – они могут прислать вам информацию о вашем аккаунте, уведомления и прочее. Однако при такой регистрации вы даруете сайтам ваш постоянный Email, на который они смогут писать при любой возможности, и отписка не всегда может помочь. Ваш ящик может попасть третьим лицам и попасть списки рассылок спама. Антиспам хорошо – но до разумного предела.

Мы уже давно позиционируем наш сервис как замену Email. И вот теперь мы подходим к возможности осуществлять вход на сторонних сайтах используя PushAll ID.
Ранее у нас уже была возможность указать Callback URL для получения ID, но сделать повторный вход было невозможно.

Из главных особенностей входа через PushAll можно выделить:

  1. Анонимность. Если вы заходите в PushAll через Google аккаунт без Google+ или через Email, то сторонний сайт узнает только ваш ID.
  2. Контролируемая обратная связь. Можно в любой момент отписаться от канала, он больше не сможет вас потревожить. Пока вы подписаны – вы будете получать мгновенные уведомления.

Мы реализовали кнопку «Открыть» после подписки и альтернативную OAuth-модель входа. Также в конце статьи расскажем о новом микросервисе, который мы сделали для Host-Tracker.com

Зачем нужна такая аутентификация?


Как минимум это полезно для микросервисов. Ранее нужно было делать на авторизацию через социальные сети, чтобы как то определять пользователя для сохранения настроек микросервиса. Теперь же получается 2 в одном – микросервис может отправлять уведомления, а PushAll реализует определение пользователя для хранения настроек или выполнения какой-либо другой механики.

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

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

При авторизации через PushAll пользователь уже будет ожидать привычную для него механику: авторизовался, получил доступ к сайту и возможностям доступным лишь для зарегистрированных пользователей, закрыл вкладку – точно уверен что придет уведомление. Авторизация пользователя через PushAll предполагает, что вы будете слать уведомления о событиях.

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

Как этим пользоваться?


Вам нужно указать ваш Callback URL и выбрать нужно ли вам использовать подход с получением ID используя протокол схожий с OAuth.



Вся механика работы такова:

  1. Вы размещаете ссылку вашего канала на вашем сайте, например pushall.ru/adminvk или ссылку с быстрым входом – pushall.ru/sign.php?subid=1586
  2. Пользователь переходит по ней и подписывается на канал
  3. В новом окне открывается ваш сайт, на который переданы данные для аутентификации пользователя

Если пользователь еще не зарегистрирован в PushAll – он может войти через Google-аккаунт после чего также перейдет на ваш сайт. Или же зарегистрироваться по почте и зайти через почту и также попадет в итоге на ваш сайт.

Он в любой момент также может нажать — Открыть и будет произведен переход по аутентификационной ссылке.

Есть 2 подхода проверки пользователя

Текущий подход без дополнительного запроса


Вам придут GET-параметры:

pushalluserid=ID&time=UNIXTIME&sign=ПОДПИСЬ
pushalluserid — ID пользователя

Для проверки подписи используйте md5(key.pushalluserid.time.ipAddress).

  • ipAddress: IP-пользователя
  • key — ключ вашего канала.
  • time — время с начала эпохи UNIX.

Вы можете сами определять уровень доверия по time — чем больше времени прошло тем меньше уровень доверия

Из недостатков данного метода — пусть и маловероятно, но данный запрос возможно подделать. Он даже может быть не сгенерирован у нас, а где то на стороне просто зная ваш ключ (если вы его где то указали вдруг)

Новый подход схожий с OAuth


Мы постарались передать «дух OAuth» оставив большую часть названий полей и ответ неизменным. Вам вернется code, который надо будет отправить через API чтобы получить ID пользователя.
pushall.ru/api.php?type=oauth&code=CODE&client_id=ID_КАНАЛА&client_secret=КЛЮЧ_КАНАЛА
Вы также можете передавать привычные id и key – скрипт понимает и то и другое.

Вам вернется JSON — {«access_token»:«1»}
Где 1 — ID пользователя.

CODE живет всего 5 минут, его нужно успеть передать за это время. Он одноразовый – то есть получить по нему еще раз ID не получится. По хорошему вам стоит указывать в Callback URL промежуточную страницу, которая будет обрабатывать CODE и аутентифицировать пользователя по принятому ID, и далее переходить уже на сам сайт.

Используя ссылку pushall.ru/sign.php?subid=ID_КАНАЛА можно аутентифицировать пользователя в один клик, если он уже подписан на ваш канал.

Про аутентификацию и авторизацию


По сути через PushAll Auth вы можете аутентифицировать пользователя, чтобы точно определить кто это, но также используя ID как токен, вы получаете возможность выполнять запросы к API в cистеме PushAll то есть вы получаете авторизацию в PushAll с ограниченным набором возможностей – отправкой Push-уведомлений.

Как это выглядит


Крупных примеров использования еще нет, но можно привести в пример созданный недавно нами микросервис для Host-Tracker.com

image

Присылает имя таски, статус, время даунтайма и время начала даунтайма. При клике — кидает на страницу аналитики таски. Ушло на все меньше 1 часа.


Для использования нужно только подписаться на канал, вписать URL и сохранить.

image
Или же например можно взять AdminVK там схожая схема, кнопка «Открыть» переходит к настройкам микросервиса


Данные примеры сделаны при использовании внутренней авторизации PushAll, но ничто не мешает использовать передаваемые данные для аутентификации и работы этих сервисов.
Например есть сторонние IT-вопросник и MySeries в обоих используется сторонняя аутентификация, при этом сервисы в итоге используют только push-уведомления через PushAll.

Функционал еще на стадии тестирования и доработок, приветствуются предложения и фидбек.
Как вы относитесь к обезличенной аутентификации?

Проголосовало 10 человек. Воздержался 21 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

Комментарии (10)


  1. Temmokan
    01.02.2017 07:40

    Вам чем-то не нравится электронная почта, раз в её упоминании почти кругом употребляется корень «спам»?

    Что ж, минусы подхода, сразу:
    — для использования я должен дополнительно доверять сервису PushAll (раньше — только собственному почтовому серверу)
    — Push-уведомления — это из серии «здесь и сейчас» — они во многих ситуациях отвлекают
    — почту я читаю, когда вздумается, она сохранится на почтовом сервере, если что — как с этим обстоит дело в вашем подходе? Я читал про дополнение к Chrome — планируется ли поддержка других браузеров?

    Реклама. Я понимаю, что себя не похвалишь — кто тебя похвалит? Но писать утверждения вида «В 1000 раз эффективнее Email рассылок» я бы не стал. Как минимум до момента, пока Push-уведомления не начнут использовать полноценный HTML и собирать полноценную аналитику прочтений. Не стоит сравнивать ботинки и апельсины, чесслово.

    Да, и проверьте орфографию на вашем сайте, хотя бы на главной. «Эксперементально» таки режет взгляд.

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

    Удачи.


    1. BupycNet
      01.02.2017 08:26

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

      2-3. Мы уже писали статью — там есть и история, и приоритеты и время жизни. Например подписались вы на какой то сайт с онлайн трансляциями, вам приходят уведомления о том, что кто-то вещает. Но если вы пропустите уведомление например на 2-3 часа — оно не будет вам показано, так как время жизни пройдет, но в истории оно будет — можно будет кликнуть и перейти, к примеру, к записи трансляции.

      Насчет хранения истории и т.д. «Я читал про дополнение к Chrome — планируется ли поддержка других браузеров? „
      В любом браузере доступна история через интерфейс PushAll, даже без дополнения. Также если открыть например статью про IT вопросник https://habrahabr.ru/company/pushall/blog/320758/ там есть скриншоты того, как это все выглядит на мобильных устройствах. То есть по факту вы при авторизации пользователя получаете нативные пуши на его мобилки с историей, приоритезацией, временем жизни.

      Мы сейчас разрабатываем улучшения, к примеру режим не беспокоить, чтобы можно было в рабочее время нерабочие уведомления временно откладывать до конца рабочего дня. У нас даже есть раздел пропущенные — туда можно складывать то не должно отвлекать в рабочее время.

      image

      У нас есть полноценная статистика. Даже с учетом того, что например на Safari собрать её невозможно — все методы приёма вроде веб-пушей, дополнения и на мобильных устройствах позволяют отследить приём уведомления. На основе этого например будет скрывание уведомлений на других устройствах если вы их прочли уже на одном. И по этой статистике 80% кликов делается в течении первых 10 секунд, и если контент интересный то конверсия кликов за первые 10 минут достигает более 20%. К примеру если делать Email рассылку на 100 000 человек вряд ли вы будете расчитывать, что за 10 секунд вы получите хотя бы 100 кликов. Да даже 10 кликов маловероятно.
      По пушу за 10 секунд вполне 1% кликнет — вот вот уже 1000 кликов за первые 10 секунд как минимум. Разве это не в 1000 раз эффективнее? Особенно если вам нужно донести моментальную информацию.

      Также пользователь сам выбирает как получать ему уведомления. Он может получать их на почту выбрав время между отдельными письмами. Уведомления будут объединяться в общие письма в стандартизированном виде.

      Использование бесплатное. Платный тариф лишь добавляет некоторые косметические вещи и более приоритетную по скорости рассылку, в остальном отличий нет.

      Насчет ассоциации “Email — Spam» Тут очень большая связь так как Email не имеет защиты кроме спам-фильтра от недобросовестных рассылок. В PushAll вы нажимаете отписаться и вам больше ничего не получится прислать. Возможно мы еще проработаем этот момент так, чтобы можно было прислать ровно одно уведомление в этом случае.


      1. Temmokan
        01.02.2017 09:25

        > По пушу за 10 секунд вполне 1% кликнет — вот вот уже 1000 кликов за первые 10 секунд как минимум. Разве это не в 1000 раз эффективнее?

        На всякий случай напоминаю про существование часовых поясов. Не все ваши пользователи в Сети «прямщас». Так что аргумент не вполне работает.

        > У нас есть полноценная статистика.

        Можно как-то посмотреть? Насколько она сопоставима по подробностям с GA/Piwik?

        И вопрос, который вы не затронули: поддержка HTML. Без него конкурировать с почтой затруднительно.

        > Тут очень большая связь так как Email не имеет защиты кроме спам-фильтра от недобросовестных рассылок.

        С одной стороны — да, слабое место электронной почты — спам. Но для него уже изобретено множество костылей разной степени удобства. Осталось посмотреть, насколько удобнее для работы подписка на несколько десятков push-каналов по сравнению с подпиской на аналогичное количество рассылок.

        > Платный тариф лишь добавляет некоторые косметические вещи

        Автоматизация, собственное имя канала и пр. — это не так уж и косметика. В той же мере косметика, как возможность в своей почте выбрать адрес по моему усмотрению, например.

        Обширную полемику по остальным пунктам затевать не стану. Мнится мне, эти способы уведомления (почта и push) всё же не взаимозаменяемы. Сейчас, по крайней мере.


        1. BupycNet
          01.02.2017 09:45

          Если аудитория преимущественно в одном часовом поясе то получается именно так.

          Статистика пока что по отдельным пушам. Сколько отправлено, сколько подтвердили получение (показ на экране) сколько подтвердили кликов.
          Мы готовим подробную статистику по времени, чтобы можно было с точностью до секунды отловить как менялись статусы уведомлений.

          Зачем поддржка HTML? Пуш уведомление это стандарт. Иконка, заголовок, текст. Это является упрощеннвм представлением информации. 2-3 строчки чтобы понять что тебе пришло и надо ли на это кликнуть. Если будет полноценная поддержка HTML, мы будем её байкотировать. Так как в этом случае различные уведомления превратятся в разноцветный цирк из разного дизайна и оформления.

          Автоматизация это лишь автопарсинг rssки быстрее чем бесплатные лимиты. Именной адрес влияет лишь на URL — косметика. По сути ничто не мешает вам на сервере слать через API на это нет ограничений.

          Про заменяемость: 90% писем состоит из оформления и 2-3 строчек оформления. Например мне на почту пришло что вы ответили на мой комментарий. Я могу также кликнуть на пуш и прочесть ваш комментарий на сайте.


          1. Temmokan
            01.02.2017 09:52

            Вследствие

            > Статистика пока что по отдельным пушам. Сколько отправлено, сколько подтвердили получение (показ на экране) сколько подтвердили кликов.

            и

            > Зачем поддржка HTML? Пуш уведомление это стандарт. Иконка, заголовок, текст. Это является упрощеннвм представлением информации.

            могу сказать вновь, что Push не сможет заменить полноценной email-рассылки. Не отдельных уведомлений, подчёркиваю — рассылки, а потому вот это:

            В 1000 раз эффективнее Email рассылок. Ваше сообщение видят сразу на экране, а не через месяц в папке «Спам»


            — не более чем рекламный трюк, не согласующийся с реальностью.

            Но в остальном да — интересно будет посмотреть на развитие сервиса. Удачи.


            1. BupycNet
              01.02.2017 10:18

              Почему же рекламный трюк. Тут все дело в скорости реакции. На что вы быстрее отреагируете — на всплывающее окно на экране справа или на письмо в почтовом ящике. Причем многие люди не заходят в свою почту неделями.

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


              1. Temmokan
                01.02.2017 11:22

                > На что вы быстрее отреагируете — на всплывающее окно на экране справа или на письмо в почтовом ящике.

                Вы опять сравниваете мягкое с тёплым.

                Почта и мгновенные уведомления — неравноценные каналы передачи информации. Разный формат, разные цели. Уведомления — именно для скорейшей реакции: короткое сообщение, побуждение к действию.

                В общем, эти два способа дополняют друг друга, но один другой не заменит.

                > Тут есть еще разница — HTML и js в почте урезанные.

                Достаточно, чтобы передать графику, встроить ссылку или видео, оформить текст удобным для восприятия образом. Большего обычно и не требуется.


                1. ragimovich
                  01.02.2017 17:35

                  Забейте, мой вам совет. У Олега, если вы почитаете его остальные посты, пуши заменяют абсолютно всё. RSS — г-но, пуши лучше. Мобильные приложения — г-но, пуши лучше. Боты и каналы в телеграме — г-но, пуши лучше. Почта — г-но, пуши лучше. Думаю, на следующем этапе, он выскажет мысль, что и сайты уже не нужны, лучше пуши. Надо просто подождать.


                  1. BupycNet
                    01.02.2017 17:58

                    Для всего есть свой инструмент. И когда какие то мелкие уведомления кидают через ту же почту — это не эффективно. Как и те примеры когда приложения пишут чисто для уведомлений.
                    RSS — чисто протокол. По сути PushAll можно использовать как его читалку.


                  1. Temmokan
                    02.02.2017 02:42

                    Собственно, я уже высказался по данному вопросу. Но да, видно, что человек не по-детски увлечён технологией.

                    Совет принят, спасибо.