Описание
Проект состоит из двух частей:
wx.config
. Эти две части независимы друг от друга.Подготовка
Требуется доступное доменное имя, например: http://t9mvyd.39nat.com
.
Настройте Nginx так, чтобы различные проекты можно было нормально просматривать через указанное доменное имя.
Настройка сторонних приложений
В административной панели предприятия создайте стороннее приложение, а затем боковую рамку. Настройте URL следующим образом: http://t9mvyd.39nat.com?corpId=APPID
.
Здесь используется метод непосредственного внедрения corpId
. В файле index.ts
на веб-входе выполняется анализ.
Получение кода
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URIresponse_type=code&scope=SCOPE&state=STATE#wechat_redirect`;
Согласно адресу перенаправления, возвращённому по ссылке, можно получить код.
Кэширование кода и corpId
Для одного приложения в течение его жизненного цикла код и corpId
остаются неизменными. Поэтому их можно сохранить в sessionStorage
или внутреннем хранилище.
Получение информации о пользователе
Сервер должен предоставить интерфейс для получения информации о пользователях на основе кода и corpId
.
Получение подписи
Одно приложение может получать не более 100 подписей в день. Подпись для всего приложения должна быть кэширована как на сервере, так и на веб-странице.
Подписи получаются с корпоративного WeChat и применяются ко всему приложению.
Получите подпись корпоративного WeChat и подпись приложения. Сохраните эту информацию.
Аутентификация
Вызов каждого API корпоративного WeChat требует аутентификации. Разные URL-адреса также требуют аутентификации.
Поэтому при переходе на каждую страницу вызывайте wx.config
и wx.agentConfig
.
setAuthContext
устанавливает обязательные свойства.
Параметр | Описание | Обязательно | Значение по умолчанию |
---|---|---|---|
weComBaseUrl | Аутентификационный адрес корпоративного WeChat | Нет | https://open.weixin.qq.com/connect/oauth2/authorize |
redirectUrl | Обратный адрес (обычно это системный вход) | Нет | window.location.href |
authScope | Параметры корпоративного WeChat | Нет | snsapi_userinfo |
nonceStr | Параметры корпоративного WeChat | Нет | @_weCom_js_sdk_app |
timestamp | Параметры корпоративного WeChat | Нет | Date.now() |
jsApiList | Параметры корпоративного WeChat | Нет | ['invoke'] |
Пример:
import { setAuthContext } from 'wxcom-js-jdk';
setAuthContext({
jsApiList(['chooseImage']);
})
registerFetchDataFunction
регистрирует методы получения билетов и информации о пользователях.
Этот метод позволяет зарегистрировать системные методы получения билетов и пользовательской информации на серверной стороне. Необходимо определить два метода:
getTicket = (corpId) => {//система сама реализует}
;getUserInfo = (corpId, code) => {//система сама реализует}
, где код возвращается корпоративным WeChat.Затем зарегистрируйте эти два метода в js-sdk:
import { registerFetchDataFunction } from 'wxcom-js-sdk';
registerFetchDataFunction({
fetchTicket: getTicket,
fetchUser: getUserInfo
});
Вызовите метод weComStart
на странице входа.
import { weComStart } from 'wecom-js-sdk';
weComStart();
Также можно отдельно вызывать методы getWeComCode
, getReferTickets
и getReferUser
на странице входа.
Можно включить режим отладки в wx.config
.
import { openDebug } from 'wxcom-js-sdk';
// Вызов в месте входа
openDebug((result) => {
// true означает включение, false — выключение. Для справки
if(result) {
Toast.info('debug включён')
}
});
Можно оставить режим отладки включённым. Поскольку при включении требуется дважды нажать на страницу 8 раз, иначе отладка не включится.
yarn add wecom-js-sdk
.index.js
:
import { setAuthContext, registerFetchDataFunction, weComStart, openDebug } from 'wecom-js-sdk';
import { getTicket, getUserInfo } from './service'; // Импорт собственных методов из локального, обычно предоставляемых данными с сервера
setAuthContext({});
registerFetchDataFunction({
fetchTicket: getTicket,
fetchUser: getUserInfo
});
weComStart();
openDebug(); // Рекомендуется всегда включать. После стабилизации системы можно отключить.
import { doAuth } from 'wecom-js-sdk';
const jsApiList = ['chooseImage']; // Здесь определите список jsApi, необходимый для текущей страницы
doAuth(jsApiList);
Таким образом завершается обычная аутентификация.
Если в других частях проекта требуются подписи и информация о пользователях, есть два способа:
const [tickets, userInfo] = await weComStart()
;
или
weComStart().then(props => {// tickets = props[0], userInfo = props[1]})
.
Можно напрямую вызывать внутренние методы.
import { getReferTickets, getReferUser } from 'wecom-js-sdk';
Наконец, не забудьте включить
https://res.wx.qq.com/open/js/jweixin-1.2.0.js
в свой HTML-файл!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )