Вход в Wechat для мобильного сайта

Wechat имеет очень удобный вход по QR-коду option (извините, только на китайском языке) для настольных веб-сайтов. По сути, вы просто сканируете код с помощью Wechat, нажимаете «ОК» и входите в систему.

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


person Michael Sayapin    schedule 21.01.2016    source источник


Ответы (2)


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

По сути, есть 3 способа входа в WeChat на вашем веб-сайте:

  • Вход в WeChat с помощью QR-кода. Это больше предназначено для настольного сайта и, с моей точки зрения, является самым простым способом входа в систему пользователей WeChat.
  • Вход в WeChat на мобильный сайт через мобильное приложение WeChat. Это когда пользователь использует мобильное приложение WeChat, а затем щелкает ссылку в мобильном приложении WeChat, которая перенаправляет пользователя на мобильную версию сайта, но все еще находится в рамках приложения WeChat. Просто посмотрите, как будто вы находитесь в мобильном приложении Gmail и нажимаете ссылку, вы все еще находитесь в мобильном приложении, но просматриваете мобильный веб-сайт.
  • Вход в WeChat с мобильного сайта через веб-браузер. В этом случае пользователь просто переходит на мобильный сайт и может войти на сайт, используя логин WeChat OAuth 2.0. Это похоже на вход в Facebook или Google, когда вы находитесь на стороннем сайте.

Теперь займемся техническими вопросами.

Вход с помощью QR-кода

документация доступна на английском языке по адресу QR Code документация по входу в систему Я не буду объяснять это здесь, так как это не совсем вопрос.

Вход в WeChat с использованием OAuth 2.0 только с мобильного сайта

[EDIT] Похоже, мы не можем напрямую использовать OAuth от WeChat на веб-сайте. Это можно сделать только в том случае, если сайт загружается из мобильного приложения WeChat. Пожалуйста, обратитесь к разделу ниже: Вход в WeChat через мобильное приложение WeChat

Документация с qq.com Использование Google Transalate должно дать вам основы. Есть 3 основных шага:

  • Шаг 1: согласие пользователя, код доступа
  • Шаг 2: Кодовая страница в обмен на авторизацию access_token
  • Шаг 3: получение информации о пользователе

Это также предполагает, что вы правильно настроили доступ к API, так как вам нужен appid, область действия и состояние.

Вход в WeChat через мобильное приложение WeChat с wechat на мобильный сайт через мобильное приложение

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

Самый простой способ сделать это — сгенерировать QR-код на основе URL-адреса веб-сайта, а затем отсканировать QR-код с помощью приложения WeChat (есть возможность сканирования с помощью мобильного приложения). Чтобы сгенерировать QR-код, вы можете использовать онлайн-инструменты, такие как http://www.qr-code-generator.com

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

Документация по этому вопросу доступна по адресу https://mp.weixin.qq.com/wiki?id=mp1421140842&highline=scope И URL-адрес будет примерно таким: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

SCOPE может быть nsapi_base или nsapi_userinfo. nsapi_userinfo позволит вам получить немного больше информации о пользователе, но на самом деле wechat мало чем делится. Они не будут делиться электронной почтой или номером мобильного телефона.

СОСТОЯНИЕ — это просто случайная строка, которую вы генерируете, которая позволяет вам сопоставлять ее после авторизации, когда страница перенаправляется.

APPID — это API-интерфейс приложения из вашей учетной записи WeChat. Если у вас еще нет APPID, доступны 2 варианта. Создайте бизнес-аккаунт (производственный аккаунт) или создайте аккаунт в песочнице. Вы можете зарегистрироваться на странице https://mp.weixin.qq.com; Или для тестовой учетной записи песочницы: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login (доступна только китайская версия)

Итак, что произойдет, когда пользователь будет перенаправлен на https://open.weixin.qq.com/connect/oauth2/authorize они должны будут дать согласие на передачу своей информации вашему мобильному сайту. Как только они согласятся, пользователь будет перенаправлен на URL-адрес по вашему выбору. (см. параметр redirect_uri=REDIRECT_URI)

а затем вы можете позвонить https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN, чтобы получить информацию о пользователе.

ACCESS_TOKEN — это токен, созданный с использованием APPID и SECRET и вызывающий API: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%5BAPPID%5D&secret=%5BSECRET%5D Опять же, APPID и SECRET доступны после регистрации в учетной записи wechat, как описано выше.

И поскольку мы любим английский, похоже, что вики на английском языке доступна по адресу http://admin.wechat.com/wiki/index.php Она не так хороша и полна, как китайская версия, но она позволяет лучше понять некоторые вещи.

После того, как вы получите информацию о пользователе, вам просто нужно реализовать логику на своем мобильном сайте примерно так:

  • автоматический вход пользователя, если у него уже есть учетная запись на сайте
  • отобразите форму регистрации с предварительно заполненной информацией о пользователе, которую вы получили, и запросите у пользователя дополнительную информацию, необходимую для вашего веб-сайта.
person Remy Burney    schedule 19.05.2017
comment
Как сопоставить пользователя приложения с пользователем сайта? каково отношение пользователя? - person praba; 24.10.2017
comment
Здесь есть еще один вариант, хотя и не очень удобный для пользователя. Пользователь может сделать снимок экрана QR-кода WeChat, отображаемого в мобильном браузере, затем открыть приложение WeChat, перейти к «Сканировать QR-код», затем открыть меню (три точки вверху справа) и выбрать «Выбрать QR-код из альбома». . Таким образом, они могут импортировать QR-код в WeChat и завершить вход без использования камеры для сканирования QR-кода. - person joelittlejohn; 16.11.2017
comment
Привет @Remy Burney Как насчет междоменной проблемы? Я пытаюсь использовать jsonp, и это нормально для вызова, но всегда возвращает неожиданный токен ошибки: (я думаю, потому что он просто поддерживает json, а не jsonp) - person Phúc Hoàng Trương; 22.12.2017
comment
@praba, извините за задержку с ответом. Вы получите уникальный идентификатор wechat/qq из API информации о пользователе. Это будет то, что вам нужно будет сохранить в своей базе данных для этого пользователя. Затем, когда пользователь возвращается, и у него есть то же самое, что и я, тогда вы знаете, кто это. Это действительно процесс o-auth, и он будет работать так же, когда вы входите в систему через Google или Facebook. - person Remy Burney; 23.12.2017
comment
@ Phúc Hoàng Trương, я не пробовал с jsonp. Я бы посоветовал вам сделать этот вызов информации о пользователе на стороне сервера с помощью базового http-запроса, чтобы токен и openid не использовались на внешнем интерфейсе. Я не думаю, что использование json от клиента вызовет проблему безопасности, но кто знает. - person Remy Burney; 23.12.2017
comment
@RemyBurney: спасибо, я переключаюсь на вызов сервера, и теперь он работает. - person Phúc Hoàng Trương; 28.12.2017
comment
Привет @RemyBurney, я получаю ответ в виде HTML, когда использую CCE API для get-weixin-code [Мобильный вход], у него также есть тело, заголовок и тег скрипта. Где-то в JSON, указанном в ответе, может быть code, но я не могу его найти, как я могу получить из него code? Статус .msg и .result говорит OK. - person Code_Ninja; 18.10.2018

когда вы переключаетесь на QR-код wechat, wechat сгенерирует QRCode аутентификации и ссылку на сервер с длительным получением, после сканирования вашего мобильного QR-кода и нажатия ссылки, которая вызовет поток аутентификации на сервере с длительным извлечением и сделает ваш браузер авторизованным и перенаправленным.

Я воспроизвел поток WeChat на github, добро пожаловать.

https://github.com/clonn/QRLoing_reproduce

person Caesar Chi    schedule 03.09.2016
comment
Если вы на мобильном, вы не можете его отсканировать, это не имеет значения. Я тоже ищу решение... - person Laurent; 28.09.2016
comment
Wechat покажет QR-код для сканирования пользователем, поэтому вы можете отсканировать QR-код и пройти проверку с помощью мобильной камеры. @Laurent, вы должны сначала применить учетную запись wechat - person Caesar Chi; 27.01.2017
comment
как вы можете отсканировать QR-код, если он отображается на вашем мобильном телефоне - person Laurent; 27.01.2017