feat: full support for wechat official account login (#2677)

* feat: full support for wechat official account login

* feat: improve provider edit page

* fix: improve i18n format
This commit is contained in:
DacongDA 2024-02-07 00:00:10 +08:00 committed by GitHub
parent 3a19d4c7c8
commit 97db54b6b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 235 additions and 78 deletions

View File

@ -24,7 +24,6 @@ import (
"net/url"
"strconv"
"strings"
"sync"
"github.com/casdoor/casdoor/captcha"
"github.com/casdoor/casdoor/conf"
@ -37,11 +36,6 @@ import (
"golang.org/x/oauth2"
)
var (
wechatCacheMap map[string]idp.WechatCacheMapValue
lock sync.RWMutex
)
func codeToResponse(code *object.Code) *Response {
if code.Code == "" {
return &Response{Status: "error", Msg: code.Message, Data: code.Code}
@ -972,15 +966,15 @@ func (c *ApiController) HandleOfficialAccountEvent() {
return
}
lock.Lock()
if wechatCacheMap == nil {
wechatCacheMap = make(map[string]idp.WechatCacheMapValue)
idp.Lock.Lock()
if idp.WechatCacheMap == nil {
idp.WechatCacheMap = make(map[string]idp.WechatCacheMapValue)
}
wechatCacheMap[data.Ticket] = idp.WechatCacheMapValue{
IsScanned: true,
WechatOpenId: data.FromUserName,
idp.WechatCacheMap[data.Ticket] = idp.WechatCacheMapValue{
IsScanned: true,
WechatUnionId: data.FromUserName,
}
lock.Unlock()
idp.Lock.Unlock()
c.Ctx.WriteString("")
}
@ -994,18 +988,15 @@ func (c *ApiController) HandleOfficialAccountEvent() {
func (c *ApiController) GetWebhookEventType() {
ticket := c.Input().Get("ticket")
lock.RLock()
wechatMsg, ok := wechatCacheMap[ticket]
lock.RUnlock()
idp.Lock.RLock()
_, ok := idp.WechatCacheMap[ticket]
idp.Lock.RUnlock()
if !ok {
c.ResponseError("ticket not found")
return
}
lock.Lock()
delete(wechatCacheMap, ticket)
lock.Unlock()
c.ResponseOk("SCAN", wechatMsg.IsScanned)
c.ResponseOk("SCAN", ticket)
}
// GetQRCode

View File

@ -26,20 +26,26 @@ import (
"net/url"
"sort"
"strings"
"sync"
"time"
"github.com/skip2/go-qrcode"
"golang.org/x/oauth2"
)
var (
WechatCacheMap map[string]WechatCacheMapValue
Lock sync.RWMutex
)
type WeChatIdProvider struct {
Client *http.Client
Config *oauth2.Config
}
type WechatCacheMapValue struct {
IsScanned bool
WechatOpenId string
IsScanned bool
WechatUnionId string
}
func NewWeChatIdProvider(clientId string, clientSecret string, redirectUrl string) *WeChatIdProvider {
@ -84,6 +90,15 @@ type WechatAccessToken struct {
// GetToken use code get access_token (*operation of getting code ought to be done in front)
// get more detail via: https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
func (idp *WeChatIdProvider) GetToken(code string) (*oauth2.Token, error) {
if strings.HasPrefix(code, "wechat_oa:") {
token := oauth2.Token{
AccessToken: code,
TokenType: "WeChatAccessToken",
Expiry: time.Time{},
}
return &token, nil
}
params := url.Values{}
params.Add("grant_type", "authorization_code")
params.Add("appid", idp.Config.ClientID)
@ -164,6 +179,29 @@ type WechatUserInfo struct {
func (idp *WeChatIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
var wechatUserInfo WechatUserInfo
accessToken := token.AccessToken
if strings.HasPrefix(accessToken, "wechat_oa:") {
Lock.RLock()
mapValue, ok := WechatCacheMap[accessToken[10:]]
Lock.RUnlock()
if !ok || mapValue.WechatUnionId == "" {
return nil, fmt.Errorf("error ticket")
}
Lock.Lock()
delete(WechatCacheMap, accessToken[10:])
Lock.Unlock()
userInfo := UserInfo{
Id: mapValue.WechatUnionId,
Username: "wx_user_" + mapValue.WechatUnionId,
DisplayName: "wx_user_" + mapValue.WechatUnionId,
AvatarUrl: "",
}
return &userInfo, nil
}
openid := token.Extra("Openid")
userInfoUrl := fmt.Sprintf("https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s", accessToken, openid)
@ -234,7 +272,7 @@ func GetWechatOfficialAccountAccessToken(clientId string, clientSecret string) (
ExpireIn int `json:"expires_in"`
AccessToken string `json:"access_token"`
ErrCode int `json:"errcode"`
Errmsg string `json:errmsg`
Errmsg string `json:"errmsg"`
}
err = json.Unmarshal(respBytes, &data)
if err != nil {

View File

@ -13,7 +13,7 @@
// limitations under the License.
import React from "react";
import {Button, Card, Checkbox, Col, Input, InputNumber, Row, Select, Switch} from "antd";
import {Button, Card, Checkbox, Col, Input, InputNumber, Radio, Row, Select, Switch} from "antd";
import {LinkOutlined} from "@ant-design/icons";
import * as ProviderBackend from "./backend/ProviderBackend";
import * as OrganizationBackend from "./backend/OrganizationBackend";
@ -118,7 +118,23 @@ class ProviderEditPage extends React.Component {
provider["cert"] = "";
this.getCerts(value);
}
provider[key] = value;
if (provider["type"] === "WeChat") {
if (!provider["clientId"]) {
provider["signName"] = "media";
provider["disableSsl"] = true;
}
if (!provider["clientId2"]) {
provider["signName"] = "open";
provider["disableSsl"] = false;
}
if (!provider["disableSsl"]) {
provider["signName"] = "open";
}
}
this.setState({
provider: provider,
});
@ -757,24 +773,40 @@ class ProviderEditPage extends React.Component {
{
this.state.provider.type !== "WeChat" ? null : (
<React.Fragment>
<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("provider:Use WeChat Media Platform in PC"), i18next.t("provider:Use WeChat Media Platform in PC - Tooltip"))} :
</Col>
<Col span={1} >
<Switch disabled={!this.state.provider.clientId} checked={this.state.provider.disableSsl} onChange={checked => {
this.updateProviderField("disableSsl", checked);
}} />
</Col>
</Row>
<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("token:Access token"), i18next.t("token:Access token - Tooltip"))} :
</Col>
<Col span={22} >
<Input value={this.state.provider.content} onChange={e => {
<Input value={this.state.provider.content} disabled={!this.state.provider.disableSsl || !this.state.provider.clientId2} onChange={e => {
this.updateProviderField("content", e.target.value);
}} />
</Col>
</Row>
<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("provider:Enable QR code"), i18next.t("provider:Enable QR code - Tooltip"))} :
{Setting.getLabel(i18next.t("provider:Follow-up action"), i18next.t("provider:Follow-up action - Tooltip"))} :
</Col>
<Col span={1} >
<Switch checked={this.state.provider.disableSsl} onChange={checked => {
this.updateProviderField("disableSsl", checked);
}} />
<Col>
<Radio.Group value={this.state.provider.signName}
disabled={!this.state.provider.disableSsl || !this.state.provider.clientId || !this.state.provider.clientId2}
buttonStyle="solid"
onChange={e => {
this.updateProviderField("signName", e.target.value);
}}>
<Radio.Button value="open">{i18next.t("provider:Use WeChat Open Platform to login")}</Radio.Button>
<Radio.Button value="media">{i18next.t("provider:Use WeChat Media Platform to login")}</Radio.Button>
</Radio.Group>
</Col>
</Row>
</React.Fragment>

View File

@ -377,7 +377,7 @@ export function getProviderLogoWidget(provider) {
}
}
export function getAuthUrl(application, provider, method) {
export function getAuthUrl(application, provider, method, code) {
if (application === null || provider === null) {
return "";
}
@ -418,6 +418,9 @@ export function getAuthUrl(application, provider, method) {
if (navigator.userAgent.includes("MicroMessenger")) {
return `${authInfo[provider.type].mpEndpoint}?appid=${provider.clientId2}&redirect_uri=${redirectUri}&state=${state}&scope=${authInfo[provider.type].mpScope}&response_type=code#wechat_redirect`;
} else {
if (provider.clientId2 && provider?.disableSsl && provider?.signName === "media") {
return `${window.location.origin}/callback?state=${state}&code=${"wechat_oa:" + code}`;
}
return `${endpoint}?appid=${provider.clientId}&redirect_uri=${redirectUri}&scope=${scope}&response_type=code&state=${state}#wechat_redirect`;
}
} else if (provider.type === "WeCom") {

View File

@ -192,7 +192,8 @@ export function getEvent(application, provider, ticket) {
getWechatMessageEvent(ticket)
.then(res => {
if (res.data === "SCAN" || res.data === "subscribe") {
Setting.goToLink(Provider.getAuthUrl(application, provider, "signup"));
const code = res?.data2;
Setting.goToLink(Provider.getAuthUrl(application, provider, "signup", code));
}
});
}

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Inhalt der E-Mail",
"Email title": "Email-Titel",
"Email title - Tooltip": "Betreff der E-Mail",
"Enable QR code": "QR-Code aktivieren",
"Enable QR code - Tooltip": "Ob das Scannen von QR-Codes zum Einloggen aktiviert werden soll",
"Endpoint": "Endpunkt",
"Endpoint (Intranet)": "Endpunkt (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token-URL",
"Type": "Typ",
"Type - Tooltip": "Wählen Sie einen Typ aus",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Contenido del correo electrónico",
"Email title": "Título del correo electrónico",
"Email title - Tooltip": "Título del correo electrónico",
"Enable QR code": "Habilitar código QR",
"Enable QR code - Tooltip": "Si permitir el escaneo de códigos QR para acceder",
"Endpoint": "Punto final",
"Endpoint (Intranet)": "Punto final (intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "URL de token",
"Type": "Tipo",
"Type - Tooltip": "Seleccionar un tipo",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Contenu de l'e-mail",
"Email title": "Titre de l'email",
"Email title - Tooltip": "Titre de l'email",
"Enable QR code": "Activer le code QR",
"Enable QR code - Tooltip": "Permettre de scanner un QR code pour se connecter",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (intranet)",
"Endpoint - Tooltip": "Endpoint - Infobulle",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "Adresse de l'expéditeur",
"From address - Tooltip": "L'adresse e-mail affichée comme expéditeur dans les e-mails envoyés",
"From name": "Nom de l'expéditeur",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "URL de jeton",
"Type": "Type de texte",
"Type - Tooltip": "Sélectionnez un type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "Association de compte",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Isi Email",
"Email title": "Judul Email",
"Email title - Tooltip": "Judul email",
"Enable QR code": "Aktifkan kode QR",
"Enable QR code - Tooltip": "Apakah diizinkan untuk memindai kode QR untuk masuk?",
"Endpoint": "Titik akhir",
"Endpoint (Intranet)": "Titik Akhir (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL: URL Token",
"Type": "Jenis",
"Type - Tooltip": "Pilih tipe",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "メールの内容",
"Email title": "電子メールのタイトル",
"Email title - Tooltip": "メールのタイトル",
"Enable QR code": "QRコードを有効にする",
"Enable QR code - Tooltip": "ログインするためにQRコードをスキャンすることを許可するかどうか",
"Endpoint": "エンドポイント",
"Endpoint (Intranet)": "エンドポイント(イントラネット)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "トークンURL",
"Type": "タイプ",
"Type - Tooltip": "タイプを選択してください",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "이메일 내용",
"Email title": "이메일 제목",
"Email title - Tooltip": "이메일 제목",
"Enable QR code": "QR 코드 활성화",
"Enable QR code - Tooltip": "QR 코드를 스캔해서 로그인할 수 있는지 여부",
"Endpoint": "엔드포인트",
"Endpoint (Intranet)": "엔드포인트 (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "토큰 URL",
"Type": "타입",
"Type - Tooltip": "유형을 선택하세요",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Conteúdo do e-mail",
"Email title": "Título do e-mail",
"Email title - Tooltip": "Título do e-mail",
"Enable QR code": "Habilitar código QR",
"Enable QR code - Tooltip": "Se permite escanear código QR para fazer login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "Endereço do remetente",
"From address - Tooltip": "Endereço de e-mail do remetente",
"From name": "Nome do remetente",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "URL do Token",
"Type": "Tipo",
"Type - Tooltip": "Selecione um tipo",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Содержание электронной почты",
"Email title": "Заголовок электронного письма",
"Email title - Tooltip": "Заголовок электронной почты",
"Enable QR code": "Включить QR-код",
"Enable QR code - Tooltip": "Разрешить ли сканирование QR-кода для входа в систему",
"Endpoint": "Конечная точка",
"Endpoint (Intranet)": "Конечная точка (интранет)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Токен URL",
"Type": "Тип",
"Type - Tooltip": "Выберите тип",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Content of the Email",
"Email title": "Email title",
"Email title - Tooltip": "Title of the email",
"Enable QR code": "Enable QR code",
"Enable QR code - Tooltip": "Whether to allow scanning QR code to login",
"Endpoint": "Endpoint",
"Endpoint (Intranet)": "Endpoint (Intranet)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "Email address of \"From\"",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Token URL",
"Type": "Type",
"Type - Tooltip": "Select a type",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "Nội dung của Email",
"Email title": "Tiêu đề email",
"Email title - Tooltip": "Tiêu đề của email",
"Enable QR code": "Kích hoạt mã QR",
"Enable QR code - Tooltip": "Cho phép quét mã QR để đăng nhập",
"Endpoint": "Điểm cuối",
"Endpoint (Intranet)": "Điểm kết thúc (mạng nội bộ)",
"Endpoint - Tooltip": "Endpoint - Tooltip",
"Follow-up action": "Follow-up action",
"Follow-up action - Tooltip": "If you choose \"Use WeChat Open Platform to login\", users need to login on the WeChat Open Platform after following the wechat official account.",
"From address": "From address",
"From address - Tooltip": "From address - Tooltip",
"From name": "From name",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "Địa chỉ của mã thông báo",
"Type": "Kiểu",
"Type - Tooltip": "Chọn loại",
"Use WeChat Media Platform in PC": "Use WeChat Media Platform in PC",
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
"User flow": "User flow",
"User flow - Tooltip": "User flow - Tooltip",
"User mapping": "User mapping",

View File

@ -725,11 +725,11 @@
"Email content - Tooltip": "邮件内容",
"Email title": "邮件标题",
"Email title - Tooltip": "邮件标题",
"Enable QR code": "扫码登录",
"Enable QR code - Tooltip": "是否允许扫描二维码登录",
"Endpoint": "地域节点 (外网)",
"Endpoint (Intranet)": "地域节点 (内网)",
"Endpoint - Tooltip": "端点 - 工具提示",
"Follow-up action": "后继动作",
"Follow-up action - Tooltip": "如果你选择“使用微信开放平台进行登录”,用户在扫描二维码并关注公众号后需要在微信开放平台进行登录",
"From address": "发件人地址",
"From address - Tooltip": "邮件里发件人的邮箱地址",
"From name": "发件人名称",
@ -835,6 +835,10 @@
"Token URL - Tooltip": "自定义OAuth的Token URL",
"Type": "类型",
"Type - Tooltip": "类型",
"Use WeChat Media Platform in PC": "在PC端使用微信公众平台",
"Use WeChat Media Platform in PC - Tooltip": "是否使用微信公众平台的二维码进行登录",
"Use WeChat Media Platform to login": "使用微信公众平台进行登录",
"Use WeChat Open Platform to login": "使用微信开放平台进行登录",
"User flow": "User flow",
"User flow - Tooltip": "User flow",
"User mapping": "用户映射",