Основной процесс
- Получить код авторизации
code
- Получить токен доступа с кодом авторизации
access_token
- Получить информацию о пользователе через токен доступа (используется для регистрации нового пользователя, когда пользователь не существует)
Авторизация пользователя на платформе WeChatРежим кода авторизации OAuth2.0 (authorization_code)
- Вход в мобильное приложение Open PlatformDevelopers.WeChat.QQ.com/doc/О, пилатес…
- Вход в приложение веб-сайта открытой платформыDevelopers.WeChat.QQ.com/doc/О, пилатес…
- Авторизация на официальной странице аккаунтаDevelopers.WeChat.QQ.com/doc/off и ACC…
Получить код авторизации
Основное различие между каждым процессом заключается в способе получения кода.
- Вход в мобильное приложениеПолучите код через клиент SDK
- Вход на сайт приложения, получить код через обратный вызов авторизационной ссылки (open.WeChat.QQ.com/connect/ Но так...)
- JS вход в приложение для сайта, встроить QR-код входа в WeChat на свою страницу, а пользователь использует WeChat для сканирования кода для авторизации и возвращает код на сайт через JS
- Авторизация на официальной странице аккаунта, получить код через обратный вызов авторизационной ссылки (открытый микроканал .QQ.com / подключение / OA U ...)
интерфейс
// 网站应用获取授权码
https://open.weixin.qq.com/connect/qrconnect?appid=[x]&redirect_uri=[x]&scope=[x]&state=[x]&response_type=code#wechat_redirect
// 公众号网页获取授权码 - 此接口仅能在微信客户端调用
https://open.weixin.qq.com/connect/oauth2/authorize?appid=[x]&redirect_uri=[x]&scope=[x]&state=[x]&response_type=code#wechat_redirect
// 获取访问令牌
https://api.weixin.qq.com/sns/oauth2/access_token?appid=[x]&secret=[x]&code=[x]&grant_type=authorization_code
// 获取用户信息
https://api.weixin.qq.com/sns/userinfo?access_token=[x]&openid=[x]&lang=zh_CN
Процесс авторизации официальной учетной записи на веб-странице
- По тихой авторизации (
scope=snsapi_base
)Получатьcode
, затем получитьaccess_token/union_id/open_id
- попробуй пройти
union_id/open_id
Получить пользователя, если он существует, перенаправить на целевую страницу - Если пользователь не существует, через немолчаливую авторизацию (
scope=snsapi_userinfo
)Получатьcode
, а затем получить информацию о пользователе - Зарегистрируйте нового пользователя с информацией о пользователе, затем перенаправьте на целевую страницу
процесс перенаправления страницы
-
start => WeChat.domain.com/invite?in vi…
-
Тихая авторизация => OAuth.WeChat.com/authorize?
-
код -> токен -> проверить, существует ли пользователь => WeChat.domain.com/invite?in vi…
- Пользователь не существует, авторизация на получение информации о пользователе => OAuth.WeChat.com/authorize?
- код -> токен -> информация о пользователе -> зарегистрировать нового пользователя => WeChat.domain.com/invite?in vi…
JS вход в приложение для сайта
Вставьте QR-код входа в WeChat на свою страницу, и после того, как пользователь просканирует код с помощью WeChat для авторизации, код вернется на сайт через JS.
- Импорт JS-файлов
https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js
- получить код
var obj = new WxLogin({
self_redirect:true,
id:"login_container",
appid: "",
scope: "",
redirect_uri: "",
state: "",
style: "",
href: ""
});
значение объема
- scope=snsapi_base, тихая авторизация, без получения информации о пользователе, то, что пользователь воспринимает, это прямой вход на страницу обратного вызова (бизнес-страницу)
- scope=snsapi_userinfo, требует согласия пользователя вручную для получения информации о пользователе.
- scope=snsapi_login для входа в приложение веб-сайта
Разрешитьaccess_token
и обычныйaccess_token
- Разрешить
access_token
Через режим кода авторизации OAuth2.0 (grant_type=authorization_code
) — это учетные данные пользовательского интерфейса доступа к прокси-серверу приложения, которые впоследствии можно использовать для получения основной информации о пользователе. - обычный
access_token
По режиму клиента OAUTH2.0 (grant_type=client_credential
), используемый приложением для прямого доступа к интерфейсу
получить access_tokenDevelopers.WeChat.QQ.com/doc/off и ACC…
юнионид и опенид
Когда приложение не связано с открытой платформой, доступен только openid, а unionid доступен только после того, как приложение связано с открытой платформой.
- unionidПользователь является единственной открытой платформой в UnionID той же учетной записи
- openidOpenID пользователя отличается в разных приложениях
Авторизация входа пользователя на платформу QQ использует режим кода авторизации OAuth2.0 (authorization_code) Unionid и openid платформы QQ, механизм тот же, что и у WeChat
-
Мобильное приложение QQКод получается с помощью метода loginServerSide клиентского SDK, а значение кода сохраняется в
access_token
поле -
QQ Web Application.Настройка с помощью обратного вызова открытой авторизационной ссылки
code
интерфейс
// QQ网站应用获取授权码
https://graph.qq.com/oauth2.0/authorize?client_id=[x]&redirect_uri=[x]&scope=[x]&response_type=code
// 获取访问令牌
https://graph.qq.com/oauth2.0/token?client_id=[x]&client_secret=[x]&code=[x]&redirect_uri=[x]&grant_type=authorization_code&fmt=json
// 获取openid/unionid
https://graph.qq.com/oauth2.0/me?access_token=[x]&fmt=json
// 获取用户信息
https://graph.qq.com/user/get_user_info?access_token=[x]&oauth_consumer_key=[x]&openid=[x]&fmt=json
Для масштаба, пройтиget_user_info
Все, никакой тихой авторизации
Alipay
Авторизация входа пользователя на каждой платформе Alipay использует режим кода авторизации OAuth2.0 (authorization_code) Alipay возвращает глобальный идентификатор пользователя Alipay (user_id), механизм unionid/openid не используется.
-
Вход в приложение AlipayПолучено через клиентский SDK
auth_code
-
Авторизация номера жизниПолучено через обратный вызов ссылки авторизации
auth_code
- Поддержка тихой авторизации, передача параметров области
auth_user
илиauth_base
- docs.Alibaba.com/Services/API/1059…
- Поддержка тихой авторизации, передача параметров области
-
Вход на сайт AlipayПолучено через обратный вызов ссылки авторизации
auth_code
- передача параметра области действия
auth_user
- docs.open.alipay.com/263/105809/
- передача параметра области действия
интерфейс
// 网站应用/生活号 获取授权码
https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=[x]&scope=[x]&redirect_uri=[x]&state=init
// 获取访问令牌
`alipay.system.oauth.token`
// 获取用户信息
`alipay.user.info.share`
значение объема
- scope=auth_base, тихая авторизация, без получения информации о пользователе, то, что пользователь воспринимает, является прямым входом на страницу обратного вызова (бизнес-страницу)
- scope=auth_user, требует, чтобы пользователь вручную согласился на получение информации о пользователе
Доуинь/Тутиао
Авторизация входа пользователя на платформу Douyin/Toutiao также использует режим кода авторизации OAuth2.0 (authorization_code) Unionid и openid платформы Douyin/Toutiao, механизм такой же, как у WeChat
- ТИК Такopen.poxyin.com/platform/do…Все API начинаются сOpen.douyin.com начинается
- заголовкиopen.poxyin.com/platform/do…Все API начинаются сopen.snssdk.com/ начинается
интерфейс
// 网站应用获取授权码
https://open.douyin.com/platform/oauth/connect/
// 静默授权获取授权码 - 必须在抖音端内可以打开的h5页面调用才有效
https://aweme.snssdk.com/oauth/authorize/v2/
// 获取访问令牌
https://open.douyin.com/oauth/access_token
// 获取用户信息
https://open.douyin.com/platform/oauth/userinfo
значение объема
- scope=login_id, тихая авторизация, информация о пользователе не получена, запрошенный интерфейс
- scope=user_info, требуется согласие пользователя вручную для получения информации о пользователе.