Различные жесты апплета для входа в систему

внешний интерфейс WeChat Апплет WeChat
Различные жесты апплета для входа в систему

Фоновое время, которое мне нравится слышать и слышать — поскольку в последнее время я много контактировал с небольшими программами, я только что пережил эру автоматического входа в систему небольших программ и нынешнюю эру входа в систему по клику. Объединив свою собственную практику и наблюдая за практикой других небольших программ, у меня есть небольшой обмен~

Что эта статья может охватывать--

возобновить

Прежде всего, спасибо @shaonialife за ваши замечательные комментарии~

К чему относится вход в апплет в этой статье?

Логин, упомянутый в этой статье, относится не только к wx.login, но и включает в себя следующие три пункта:

  • Получить основную информацию о пользователе
  • Вызов интерфейса WeChat wx.login
  • Реализовать вход на стороне сервера

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

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

Старые времена - автоматически авторизовать шаттл

Новая эра — открытые данные с помощью апплета

При использовании open-data нужно обращать внимание на версию базовой библиотеки апплета. Конкретное использование заключается в следующем

По сути, open-data можно рассматривать как картинку или строку.Если вы хотите управлять стилем, вы можете добавить метку вида и соответствующий класс на внешний слой.

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

Что мне делать, если мне нужно, чтобы пользователь реализовал вход на стороне сервера?

Согласно документации апплета WeChat, для завершения входа на стороне сервера (получение пользовательского ключа session_key/openid и т. д.) есть три параметра, возвращаемых внешним интерфейсом, которые необходимы:

  • code
  • encryptedData
  • iv

код получен через wx.login, а зашифрованные данные и iv получены из wx.getUserInfo.

Однако в связи с обновлением базовой библиотеки WeChat возможность вызова getUserInfo через API отменена, и для вызова метода getUserInfo необходимо использовать открытую возможность [open-type] компонента кнопки.

Для вышеуказанного способа получения данных рекомендуется ознакомиться с официальной документацией:

Документация по getUserInfo

Документация о входе в систему

Шагая по опыту ямы: убедитесь, что wx.login предшествует getUserInfo, не только на уровне выполнения кода, но лучше всего перейти к getUserInfo после успешного обратного вызова входа, в противном случае может произойти сбой дешифрования бэкэнда, что приведет к ошибка входа в систему.

(Как реализовать вход в систему при вызове getUserInfo через API, здесь повторяться не будем.)

Хотя автоматическая авторизация больше невозможна, мы все еще можем реализовать авторизацию входа в апплет таким образом.

Вообще говоря, существует два режима авторизации, один — обязательная авторизация, а другой — авторизация по запросу.Независимо от того, что это за процесс, его можно в основном разделить на эти две авторизации.

Обязательная авторизация

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

  • Режим авторизации: есть много режимов, но общая особенность заключается в том, что он прерывает обычный процесс входа пользователя в апплет, и опыт немного ошибочен Вот два режима:

    • Не переходите на страницу, где бы вы ни кликали на странице, всплывает всплывающее окно авторизации, как показано на рисунке (щелчок мышью не записывается, на самом деле, где бы вы ни кликали, авторизация сработает)↓↓

    Реализация этого решения на самом деле очень проста и груба — компонент-кнопка, закрывающая весь экран, помещается на страницу, которую необходимо авторизовать, в виде position: fixed, а затем ее непрозрачность устанавливается на 0.

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

    Лично я все же предпочитаю эту модель авторизации, которая чем-то похожа на авторизацию в собственной экосистеме WeChat, и не так навязчива пользователям.

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

Лицензирование по требованию

  • Сфера применения: Мини-программы, которые имеют очень четкое планирование идентификации пользователя и могут принимать личность пользователя после того, как пользователь выполняет определенные действия.

  • Режим авторизации: основной процесс страницы апплета не будет прерываться, а авторизация будет добавлена ​​к основному процессу. Метод реализации также очень гибок: будь то список, изображение или даже фрагмент текста, если он должен запускаться пользователем вручную, его можно использовать в качестве времени инициации авторизации.

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

резюме

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