Перейти к содержанию

weauth: Аутентификация на основе структуры организации WeChat для nginx-module-lua

Установка

Если вы еще не подписались на RPM-репозиторий, зарегистрируйтесь. Затем вы можете продолжить с следующими шагами.

CentOS/RHEL 7 или Amazon Linux 2

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-weauth

CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023

dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-weauth

Чтобы использовать эту библиотеку Lua с NGINX, убедитесь, что установлен nginx-module-lua.

Этот документ описывает lua-resty-weauth v0.0.3, выпущенный 11 августа 2021 года.


Аутентификация на основе структуры организации WeChat для OpenResty/ngx_lua

Использование

Загрузка

cd /path/to
git clone [email protected]:ledgetech/lua-resty-http.git
git clone [email protected]:SkyLothar/lua-resty-jwt.git
git clone [email protected]:k8scat/lua-resty-weauth.git

Конфигурация

server {
    access_by_lua_block {
        local weauth = require "resty.weauth"
        weauth.corp_id = ""
        weauth.app_agent_id = ""
        weauth.app_secret = ""
        weauth.callback_uri = "/weauth_callback"
        weauth.logout_uri = "/weauth_logout"
        weauth.app_domain = "weauth.example.com"

        weauth.jwt_secret = "thisisjwtsecret"

        weauth.ip_blacklist = {"47.1.2.3"}
        weauth.uri_whitelist = {"/"}
        weauth.department_whitelist = {1, 2}

        weauth:auth()
    }
}

Описание конфигурации:

  • corp_id используется для установки идентификатора компании
  • app_agent_id используется для установки AgentId приложения WeChat
  • app_secret используется для установки Secret приложения WeChat
  • callback_uri используется для установки адреса обратного вызова после входа через QR-код WeChat (необходимо установить в домене обратного вызова авторизации WeChat)
  • logout_uri используется для установки адреса выхода
  • app_domain используется для установки домена доступа (должен совпадать с доменом доступа бизнес-сервиса)
  • jwt_secret используется для установки JWT secret
  • ip_blacklist используется для установки черного списка IP
  • uri_whitelist используется для установки белого списка адресов, например, главная страница не требует аутентификации
  • department_whitelist используется для установки белого списка отделов (числа)

Зависимые модули

Связанные проекты

  • lua-resty-feishu-auth Аутентификация на основе структуры организации Feishu для OpenResty / ngx_lua

Автор

K8sCat k8scat@gmail.com

Лицензия

MIT

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-weauth.