mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 02:35:49 +08:00
feat: fix bug in WeChat OA login (#2674)
* fix: fix the problem of Wechat Official Account login * fix: fix code format problem * fix: add error display and fix the code format problem * fix: i18n problem and code format
This commit is contained in:
parent
7d0eae230e
commit
167c1b0f1b
@ -51,7 +51,8 @@ p, *, *, GET, /api/get-account, *, *
|
||||
p, *, *, GET, /api/userinfo, *, *
|
||||
p, *, *, GET, /api/user, *, *
|
||||
p, *, *, GET, /api/health, *, *
|
||||
p, *, *, POST, /api/webhook, *, *
|
||||
p, *, *, *, /api/webhook, *, *
|
||||
p, *, *, GET, /api/get-qrcode, *, *
|
||||
p, *, *, GET, /api/get-webhook-event, *, *
|
||||
p, *, *, GET, /api/get-captcha-status, *, *
|
||||
p, *, *, *, /api/login/oauth, *, *
|
||||
@ -152,7 +153,7 @@ func IsAllowed(subOwner string, subName string, method string, urlPath string, o
|
||||
|
||||
func isAllowedInDemoMode(subOwner string, subName string, method string, urlPath string, objOwner string, objName string) bool {
|
||||
if method == "POST" {
|
||||
if strings.HasPrefix(urlPath, "/api/login") || urlPath == "/api/logout" || urlPath == "/api/signup" || urlPath == "/api/callback" || urlPath == "/api/send-verification-code" || urlPath == "/api/send-email" || urlPath == "/api/verify-captcha" || urlPath == "/api/verify-code" || urlPath == "/api/check-user-password" || strings.HasPrefix(urlPath, "/api/mfa/") {
|
||||
if strings.HasPrefix(urlPath, "/api/login") || urlPath == "/api/logout" || urlPath == "/api/signup" || urlPath == "/api/callback" || urlPath == "/api/send-verification-code" || urlPath == "/api/send-email" || urlPath == "/api/verify-captcha" || urlPath == "/api/verify-code" || urlPath == "/api/check-user-password" || strings.HasPrefix(urlPath, "/api/mfa/") || urlPath == "/api/webhook" || urlPath == "/api/get-qrcode" {
|
||||
return true
|
||||
} else if urlPath == "/api/update-user" {
|
||||
// Allow ordinary users to update their own information
|
||||
|
@ -38,7 +38,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
wechatScanType string
|
||||
wechatCacheMap map[string]idp.WechatCacheMapValue
|
||||
lock sync.RWMutex
|
||||
)
|
||||
|
||||
@ -919,49 +919,115 @@ func (c *ApiController) HandleSamlLogin() {
|
||||
// @Tag System API
|
||||
// @Title HandleOfficialAccountEvent
|
||||
// @router /webhook [POST]
|
||||
// @Success 200 {object} object.Userinfo The Response object
|
||||
// @Success 200 {object} controllers.Response The Response object
|
||||
func (c *ApiController) HandleOfficialAccountEvent() {
|
||||
if c.Ctx.Request.Method == "GET" {
|
||||
s := c.Ctx.Request.FormValue("echostr")
|
||||
echostr, _ := strconv.Atoi(s)
|
||||
c.SetData(echostr)
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
respBytes, err := io.ReadAll(c.Ctx.Request.Body)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
signature := c.Input().Get("signature")
|
||||
timestamp := c.Input().Get("timestamp")
|
||||
nonce := c.Input().Get("nonce")
|
||||
var data struct {
|
||||
MsgType string `xml:"MsgType"`
|
||||
Event string `xml:"Event"`
|
||||
EventKey string `xml:"EventKey"`
|
||||
MsgType string `xml:"MsgType"`
|
||||
Event string `xml:"Event"`
|
||||
EventKey string `xml:"EventKey"`
|
||||
FromUserName string `xml:"FromUserName"`
|
||||
Ticket string `xml:"Ticket"`
|
||||
}
|
||||
err = xml.Unmarshal(respBytes, &data)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
if strings.ToUpper(data.Event) != "SCAN" && strings.ToUpper(data.Event) != "SUBSCRIBE" {
|
||||
c.Ctx.WriteString("")
|
||||
return
|
||||
}
|
||||
if data.Ticket == "" {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
providerId := data.EventKey
|
||||
provider, err := object.GetProvider(providerId)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
if data.Ticket == "" {
|
||||
c.ResponseError("empty ticket")
|
||||
return
|
||||
}
|
||||
if !idp.VerifyWechatSignature(provider.Content, nonce, timestamp, signature) {
|
||||
c.ResponseError("invalid signature")
|
||||
return
|
||||
}
|
||||
|
||||
lock.Lock()
|
||||
defer lock.Unlock()
|
||||
if data.EventKey != "" {
|
||||
wechatScanType = data.Event
|
||||
c.Ctx.WriteString("")
|
||||
if wechatCacheMap == nil {
|
||||
wechatCacheMap = make(map[string]idp.WechatCacheMapValue)
|
||||
}
|
||||
wechatCacheMap[data.Ticket] = idp.WechatCacheMapValue{
|
||||
IsScanned: true,
|
||||
WechatOpenId: data.FromUserName,
|
||||
}
|
||||
lock.Unlock()
|
||||
|
||||
c.Ctx.WriteString("")
|
||||
}
|
||||
|
||||
// GetWebhookEventType ...
|
||||
// @Tag System API
|
||||
// @Title GetWebhookEventType
|
||||
// @router /get-webhook-event [GET]
|
||||
// @Success 200 {object} object.Userinfo The Response object
|
||||
// @Param ticket query string true "The eventId of QRCode"
|
||||
// @Success 200 {object} controllers.Response The Response object
|
||||
func (c *ApiController) GetWebhookEventType() {
|
||||
lock.Lock()
|
||||
defer lock.Unlock()
|
||||
resp := &Response{
|
||||
Status: "ok",
|
||||
Msg: "",
|
||||
Data: wechatScanType,
|
||||
ticket := c.Input().Get("ticket")
|
||||
|
||||
lock.RLock()
|
||||
wechatMsg, ok := wechatCacheMap[ticket]
|
||||
lock.RUnlock()
|
||||
if !ok {
|
||||
c.ResponseError("ticket not found")
|
||||
return
|
||||
}
|
||||
c.Data["json"] = resp
|
||||
wechatScanType = ""
|
||||
c.ServeJSON()
|
||||
lock.Lock()
|
||||
delete(wechatCacheMap, ticket)
|
||||
lock.Unlock()
|
||||
|
||||
c.ResponseOk("SCAN", wechatMsg.IsScanned)
|
||||
}
|
||||
|
||||
// GetQRCode
|
||||
// @Tag System API
|
||||
// @Title GetWechatQRCode
|
||||
// @router /get-qrcode [GET]
|
||||
// @Param id query string true "The id ( owner/name ) of provider"
|
||||
// @Success 200 {object} controllers.Response The Response object
|
||||
func (c *ApiController) GetQRCode() {
|
||||
providerId := c.Input().Get("id")
|
||||
provider, err := object.GetProvider(providerId)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
code, ticket, err := idp.GetWechatOfficialAccountQRCode(provider.ClientId2, provider.ClientSecret2, providerId)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
c.ResponseOk(code, ticket)
|
||||
}
|
||||
|
||||
// GetCaptchaStatus
|
||||
|
@ -16,12 +16,15 @@ package idp
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/sha1"
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -34,6 +37,11 @@ type WeChatIdProvider struct {
|
||||
Config *oauth2.Config
|
||||
}
|
||||
|
||||
type WechatCacheMapValue struct {
|
||||
IsScanned bool
|
||||
WechatOpenId string
|
||||
}
|
||||
|
||||
func NewWeChatIdProvider(clientId string, clientSecret string, redirectUrl string) *WeChatIdProvider {
|
||||
idp := &WeChatIdProvider{}
|
||||
|
||||
@ -203,60 +211,70 @@ func BuildWechatOpenIdKey(appId string) string {
|
||||
return fmt.Sprintf("wechat_openid_%s", appId)
|
||||
}
|
||||
|
||||
func GetWechatOfficialAccountAccessToken(clientId string, clientSecret string) (string, error) {
|
||||
func GetWechatOfficialAccountAccessToken(clientId string, clientSecret string) (string, string, error) {
|
||||
accessTokenUrl := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", clientId, clientSecret)
|
||||
request, err := http.NewRequest("GET", accessTokenUrl, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
client := new(http.Client)
|
||||
resp, err := client.Do(request)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
respBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
var data struct {
|
||||
ExpireIn int `json:"expires_in"`
|
||||
AccessToken string `json:"access_token"`
|
||||
ErrCode int `json:"errcode"`
|
||||
Errmsg string `json:errmsg`
|
||||
}
|
||||
err = json.Unmarshal(respBytes, &data)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
return data.AccessToken, nil
|
||||
return data.AccessToken, data.Errmsg, nil
|
||||
}
|
||||
|
||||
func GetWechatOfficialAccountQRCode(clientId string, clientSecret string) (string, error) {
|
||||
accessToken, err := GetWechatOfficialAccountAccessToken(clientId, clientSecret)
|
||||
func GetWechatOfficialAccountQRCode(clientId string, clientSecret string, providerId string) (string, string, error) {
|
||||
accessToken, errMsg, err := GetWechatOfficialAccountAccessToken(clientId, clientSecret)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
if errMsg != "" {
|
||||
return "", "", fmt.Errorf("Fail to fetch WeChat QRcode: %s", errMsg)
|
||||
}
|
||||
|
||||
client := new(http.Client)
|
||||
|
||||
weChatEndpoint := "https://api.weixin.qq.com/cgi-bin/qrcode/create"
|
||||
qrCodeUrl := fmt.Sprintf("%s?access_token=%s", weChatEndpoint, accessToken)
|
||||
params := `{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}`
|
||||
params := fmt.Sprintf(`{"expire_seconds": 3600, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "%s"}}}`, providerId)
|
||||
|
||||
bodyData := bytes.NewReader([]byte(params))
|
||||
requeset, err := http.NewRequest("POST", qrCodeUrl, bodyData)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
resp, err := client.Do(requeset)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
respBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
var data struct {
|
||||
Ticket string `json:"ticket"`
|
||||
@ -265,11 +283,26 @@ func GetWechatOfficialAccountQRCode(clientId string, clientSecret string) (strin
|
||||
}
|
||||
err = json.Unmarshal(respBytes, &data)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", "", err
|
||||
}
|
||||
|
||||
var png []byte
|
||||
png, err = qrcode.Encode(data.URL, qrcode.Medium, 256)
|
||||
base64Image := base64.StdEncoding.EncodeToString(png)
|
||||
return base64Image, nil
|
||||
return base64Image, data.Ticket, nil
|
||||
}
|
||||
|
||||
func VerifyWechatSignature(token string, nonce string, timestamp string, signature string) bool {
|
||||
// verify the signature
|
||||
tmpArr := sort.StringSlice{token, timestamp, nonce}
|
||||
sort.Sort(tmpArr)
|
||||
|
||||
tmpStr := ""
|
||||
for _, str := range tmpArr {
|
||||
tmpStr = tmpStr + str
|
||||
}
|
||||
|
||||
b := sha1.Sum([]byte(tmpStr))
|
||||
res := hex.EncodeToString(b[:])
|
||||
return res == signature
|
||||
}
|
||||
|
@ -19,7 +19,6 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/casdoor/casdoor/idp"
|
||||
"github.com/casdoor/casdoor/util"
|
||||
"github.com/xorm-io/core"
|
||||
)
|
||||
@ -164,15 +163,6 @@ func getProviderMap(owner string) (m map[string]*Provider, err error) {
|
||||
|
||||
m = map[string]*Provider{}
|
||||
for _, provider := range providers {
|
||||
// Get QRCode only once
|
||||
if provider.Type == "WeChat" && provider.DisableSsl && provider.Content == "" {
|
||||
provider.Content, err = idp.GetWechatOfficialAccountQRCode(provider.ClientId2, provider.ClientSecret2)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
UpdateProvider(provider.Owner+"/"+provider.Name, provider)
|
||||
}
|
||||
|
||||
m[provider.Name] = GetMaskedProvider(provider, true)
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,8 @@ func initAPI() {
|
||||
beego.Router("/api/acs", &controllers.ApiController{}, "POST:HandleSamlLogin")
|
||||
beego.Router("/api/saml/metadata", &controllers.ApiController{}, "GET:GetSamlMeta")
|
||||
beego.Router("/api/saml/redirect/:owner/:application", &controllers.ApiController{}, "*:HandleSamlRedirect")
|
||||
beego.Router("/api/webhook", &controllers.ApiController{}, "POST:HandleOfficialAccountEvent")
|
||||
beego.Router("/api/webhook", &controllers.ApiController{}, "*:HandleOfficialAccountEvent")
|
||||
beego.Router("/api/get-qrcode", &controllers.ApiController{}, "GET:GetQRCode")
|
||||
beego.Router("/api/get-webhook-event", &controllers.ApiController{}, "GET:GetWebhookEventType")
|
||||
beego.Router("/api/get-captcha-status", &controllers.ApiController{}, "GET:GetCaptchaStatus")
|
||||
beego.Router("/api/callback", &controllers.ApiController{}, "POST:Callback")
|
||||
|
@ -756,16 +756,28 @@ class ProviderEditPage extends React.Component {
|
||||
}
|
||||
{
|
||||
this.state.provider.type !== "WeChat" ? null : (
|
||||
<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"))} :
|
||||
</Col>
|
||||
<Col span={1} >
|
||||
<Switch checked={this.state.provider.disableSsl} onChange={checked => {
|
||||
this.updateProviderField("disableSsl", checked);
|
||||
}} />
|
||||
</Col>
|
||||
</Row>
|
||||
<React.Fragment>
|
||||
<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 => {
|
||||
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"))} :
|
||||
</Col>
|
||||
<Col span={1} >
|
||||
<Switch checked={this.state.provider.disableSsl} onChange={checked => {
|
||||
this.updateProviderField("disableSsl", checked);
|
||||
}} />
|
||||
</Col>
|
||||
</Row>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
||||
{
|
||||
|
@ -135,8 +135,18 @@ export function loginWithSaml(values, param) {
|
||||
}).then(res => res.json());
|
||||
}
|
||||
|
||||
export function getWechatMessageEvent() {
|
||||
return fetch(`${Setting.ServerUrl}/api/get-webhook-event`, {
|
||||
export function getWechatMessageEvent(ticket) {
|
||||
return fetch(`${Setting.ServerUrl}/api/get-webhook-event?ticket=${ticket}`, {
|
||||
method: "GET",
|
||||
credentials: "include",
|
||||
headers: {
|
||||
"Accept-Language": Setting.getAcceptLanguage(),
|
||||
},
|
||||
}).then(res => res.json());
|
||||
}
|
||||
|
||||
export function getWechatQRCode(providerId) {
|
||||
return fetch(`${Setting.ServerUrl}/api/get-qrcode?id=${providerId}`, {
|
||||
method: "GET",
|
||||
credentials: "include",
|
||||
headers: {
|
||||
|
@ -43,6 +43,7 @@ import OktaLoginButton from "./OktaLoginButton";
|
||||
import DouyinLoginButton from "./DouyinLoginButton";
|
||||
import LoginButton from "./LoginButton";
|
||||
import * as AuthBackend from "./AuthBackend";
|
||||
import * as Setting from "../Setting";
|
||||
import {getEvent} from "./Util";
|
||||
import {Modal} from "antd";
|
||||
|
||||
@ -132,20 +133,29 @@ export function goToWeb3Url(application, provider, method) {
|
||||
export function renderProviderLogo(provider, application, width, margin, size, location) {
|
||||
if (size === "small") {
|
||||
if (provider.category === "OAuth") {
|
||||
if (provider.type === "WeChat" && provider.clientId2 !== "" && provider.clientSecret2 !== "" && provider.content !== "" && provider.disableSsl === true && !navigator.userAgent.includes("MicroMessenger")) {
|
||||
if (provider.type === "WeChat" && provider.clientId2 !== "" && provider.clientSecret2 !== "" && provider.disableSsl === true && !navigator.userAgent.includes("MicroMessenger")) {
|
||||
const info = async() => {
|
||||
const t1 = setInterval(await getEvent, 1000, application, provider);
|
||||
{Modal.info({
|
||||
title: i18next.t("provider:Please use WeChat and scan the QR code to sign in"),
|
||||
content: (
|
||||
<div>
|
||||
<img width={256} height={256} src = {"data:image/png;base64," + provider.content} alt="Wechat QR code" style={{margin: margin}} />
|
||||
</div>
|
||||
),
|
||||
onOk() {
|
||||
window.clearInterval(t1);
|
||||
},
|
||||
});}
|
||||
AuthBackend.getWechatQRCode(`${provider.owner}/${provider.name}`).then(
|
||||
async res => {
|
||||
if (res.status !== "ok") {
|
||||
Setting.showMessage("error", res?.msg);
|
||||
return;
|
||||
}
|
||||
|
||||
const t1 = setInterval(await getEvent, 1000, application, provider, res.data2);
|
||||
{Modal.info({
|
||||
title: i18next.t("provider:Please use WeChat to scan the QR code and follow the official account for sign in"),
|
||||
content: (
|
||||
<div style={{marginRight: "34px"}}>
|
||||
<img src = {"data:image/png;base64," + res.data} alt="Wechat QR code" style={{width: "100%"}} />
|
||||
</div>
|
||||
),
|
||||
onOk() {
|
||||
window.clearInterval(t1);
|
||||
},
|
||||
});}
|
||||
}
|
||||
);
|
||||
};
|
||||
return (
|
||||
<a key={provider.displayName} >
|
||||
|
@ -188,8 +188,8 @@ export function getQueryParamsFromState(state) {
|
||||
}
|
||||
}
|
||||
|
||||
export function getEvent(application, provider) {
|
||||
getWechatMessageEvent()
|
||||
export function getEvent(application, provider, ticket) {
|
||||
getWechatMessageEvent(ticket)
|
||||
.then(res => {
|
||||
if (res.data === "SCAN" || res.data === "subscribe") {
|
||||
Setting.goToLink(Provider.getAuthUrl(application, provider, "signup"));
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Bei der Verwendung von Drittanbietern zur Anmeldung wird, wenn es in der Organisation einen Benutzer mit der gleichen E-Mail gibt, automatisch die Drittanbieter-Anmelde-Methode mit diesem Benutzer verbunden",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Aktivieren Sie SAML-Komprimierung",
|
||||
"Enable SAML compression - Tooltip": "Ob SAML-Antwortnachrichten komprimiert werden sollen, wenn Casdoor als SAML-IdP verwendet wird",
|
||||
"Enable side panel": "Sidepanel aktivieren",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Metadaten erfolgreich analysiert",
|
||||
"Path prefix": "Pfadpräfix",
|
||||
"Path prefix - Tooltip": "Bucket-Pfad-Präfix für Objektspeicher",
|
||||
"Please use WeChat and scan the QR code to sign in": "Bitte verwenden Sie WeChat und scanne den QR-Code ein, um dich anzumelden",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Hafen",
|
||||
"Port - Tooltip": "Stellen Sie sicher, dass der Port offen ist",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,10 +34,10 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Use C14N10 instead of C14N11 in SAML",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
|
||||
"Enable signup": "Enable signup",
|
||||
@ -757,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Cuando se utilizan proveedores externos de inicio de sesión, si hay un usuario en la organización con el mismo correo electrónico, el método de inicio de sesión externo se asociará automáticamente con ese usuario",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Activar la compresión SAML",
|
||||
"Enable SAML compression - Tooltip": "Si comprimir o no los mensajes de respuesta SAML cuando se utiliza Casdoor como proveedor de identidad SAML",
|
||||
"Enable side panel": "Habilitar panel lateral",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Analizar los metadatos con éxito",
|
||||
"Path prefix": "Prefijo de ruta",
|
||||
"Path prefix - Tooltip": "Prefijo de ruta de cubo para almacenamiento de objetos",
|
||||
"Please use WeChat and scan the QR code to sign in": "Por favor, utiliza WeChat y escanea el código QR para iniciar sesión",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Puerto",
|
||||
"Port - Tooltip": "Asegúrate de que el puerto esté abierto",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Lorsqu'un fournisseur tiers est utilisé pour se connecter, si un compte existe dans l'organisation avec la même adresse e-mail, la méthode de connexion tierce sera automatiquement associée à ce compte",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Activer la compression SAML",
|
||||
"Enable SAML compression - Tooltip": "Compresser ou non les messages de réponse SAML lorsque Casdoor est utilisé en tant que fournisseur d'identité SAML",
|
||||
"Enable side panel": "Activer le panneau latéral",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parcourir les métadonnées avec succès",
|
||||
"Path prefix": "Préfixe de chemin",
|
||||
"Path prefix - Tooltip": "Préfixe de chemin de seau pour le stockage d'objet",
|
||||
"Please use WeChat and scan the QR code to sign in": "Veuillez utiliser WeChat et scanner le code QR pour vous connecter",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Assurez-vous que le port est ouvert",
|
||||
"Private Key": "Clé privée",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Ketika menggunakan penyedia layanan pihak ketiga untuk masuk, jika ada pengguna di organisasi dengan email yang sama, metode login pihak ketiga akan secara otomatis terhubung dengan pengguna tersebut",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Aktifkan kompresi SAML",
|
||||
"Enable SAML compression - Tooltip": "Apakah pesan respons SAML harus dikompres saat Casdoor digunakan sebagai SAML idp?",
|
||||
"Enable side panel": "Aktifkan panel samping",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Berhasil mem-parse metadata",
|
||||
"Path prefix": "Awalan jalur",
|
||||
"Path prefix - Tooltip": "Awalan path ember untuk penyimpanan objek dalam bucket",
|
||||
"Please use WeChat and scan the QR code to sign in": "Silakan gunakan WeChat dan pindai kode QR untuk masuk",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Pelabuhan",
|
||||
"Port - Tooltip": "Pastikan port terbuka",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "組織内に同じメールアドレスを持つユーザーがいる場合、サードパーティのログイン方法は自動的にそのユーザーに関連付けられます",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "SAMLの圧縮を有効にする",
|
||||
"Enable SAML compression - Tooltip": "CasdoorをSAML IdPとして使用する場合、SAMLレスポンスメッセージを圧縮するかどうか。圧縮する: 圧縮するかどうか。圧縮しない: 圧縮しないかどうか",
|
||||
"Enable side panel": "サイドパネルを有効にする",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "メタデータを正常に解析しました",
|
||||
"Path prefix": "パスプレフィックス",
|
||||
"Path prefix - Tooltip": "オブジェクトストレージのバケットパスプレフィックス",
|
||||
"Please use WeChat and scan the QR code to sign in": "WeChatを使用し、QRコードをスキャンしてサインインしてください",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "ポート",
|
||||
"Port - Tooltip": "ポートが開いていることを確認してください",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "3rd-party 로그인 공급자를 사용할 때, 만약 조직 내에 동일한 이메일을 사용하는 사용자가 있다면, 3rd-party 로그인 방법은 자동으로 해당 사용자와 연동됩니다",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "SAML 압축 사용 가능하게 설정하기",
|
||||
"Enable SAML compression - Tooltip": "카스도어가 SAML idp로 사용될 때 SAML 응답 메시지를 압축할 것인지 여부",
|
||||
"Enable side panel": "측면 패널 활성화",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "메타데이터를 성공적으로 분석했습니다",
|
||||
"Path prefix": "경로 접두어",
|
||||
"Path prefix - Tooltip": "객체 저장소에 대한 버킷 경로 접두어",
|
||||
"Please use WeChat and scan the QR code to sign in": "WeChat를 사용하시고 QR 코드를 스캔하여 로그인해주세요",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "포트",
|
||||
"Port - Tooltip": "포트가 열려 있는지 확인하세요",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Ao usar provedores de terceiros para fazer login, se houver um usuário na organização com o mesmo e-mail, o método de login de terceiros será automaticamente associado a esse usuário",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Ativar compressão SAML",
|
||||
"Enable SAML compression - Tooltip": "Se deve comprimir as mensagens de resposta SAML quando o Casdoor é usado como provedor de identidade SAML",
|
||||
"Enable side panel": "Ativar painel lateral",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Metadados analisados com sucesso",
|
||||
"Path prefix": "Prefixo do caminho",
|
||||
"Path prefix - Tooltip": "Prefixo do caminho do bucket para armazenamento de objetos",
|
||||
"Please use WeChat and scan the QR code to sign in": "Por favor, use o WeChat e escaneie o código QR para fazer login",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Porta",
|
||||
"Port - Tooltip": "Certifique-se de que a porta esteja aberta",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "При использовании сторонних провайдеров для входа, если в организации есть пользователь с такой же электронной почтой, то способ входа через стороннего провайдера автоматически будет связан с этим пользователем",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Включите сжатие SAML",
|
||||
"Enable SAML compression - Tooltip": "Нужно ли сжимать сообщения ответа SAML при использовании Casdoor в качестве SAML-идентификатора",
|
||||
"Enable side panel": "Включить боковую панель",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Успешно обработана метаданные",
|
||||
"Path prefix": "Префикс пути",
|
||||
"Path prefix - Tooltip": "Префикс пути ведра для хранилища объектов",
|
||||
"Please use WeChat and scan the QR code to sign in": "Пожалуйста, используйте WeChat и отсканируйте QR-код для входа в систему",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Порт",
|
||||
"Port - Tooltip": "Убедитесь, что порт открыт",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "When using 3rd-party providers to log in, if there is a user in the organization with the same Email, the 3rd-party login method will be automatically associated with that user",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Enable SAML compression",
|
||||
"Enable SAML compression - Tooltip": "Whether to compress SAML response messages when Casdoor is used as SAML idp",
|
||||
"Enable side panel": "Enable side panel",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Parse metadata successfully",
|
||||
"Path prefix": "Path prefix",
|
||||
"Path prefix - Tooltip": "Bucket path prefix for object storage",
|
||||
"Please use WeChat and scan the QR code to sign in": "Please use WeChat and scan the QR code to sign in",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Port",
|
||||
"Port - Tooltip": "Make sure the port is open",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,6 +34,8 @@
|
||||
"Enable Email linking - Tooltip": "Khi sử dụng nhà cung cấp bên thứ ba để đăng nhập, nếu có người dùng trong tổ chức có cùng địa chỉ Email, phương pháp đăng nhập bên thứ ba sẽ tự động được liên kết với người dùng đó",
|
||||
"Enable SAML C14N10": "Enable SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "Enable SAML C14N10 - Tooltip",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "Cho phép nén SAML",
|
||||
"Enable SAML compression - Tooltip": "Liệu có nén các thông điệp phản hồi SAML khi Casdoor được sử dụng làm SAML idp không?",
|
||||
"Enable side panel": "Cho phép bên thanh phẩm",
|
||||
@ -755,7 +757,7 @@
|
||||
"Parse metadata successfully": "Phân tích siêu dữ liệu thành công",
|
||||
"Path prefix": "Tiền tố đường dẫn",
|
||||
"Path prefix - Tooltip": "Tiền tố đường dẫn thùng chứa cho lưu trữ đối tượng",
|
||||
"Please use WeChat and scan the QR code to sign in": "Vui lòng sử dụng WeChat và quét mã QR để đăng nhập",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "Cảng",
|
||||
"Port - Tooltip": "Chắc chắn rằng cổng đang mở",
|
||||
"Private Key": "Private Key",
|
||||
|
@ -34,10 +34,10 @@
|
||||
"Enable Email linking - Tooltip": "使用第三方授权登录时,如果组织中存在与授权用户邮箱相同的用户,会自动关联该第三方登录方式到该用户",
|
||||
"Enable SAML C14N10": "启用SAML C14N10",
|
||||
"Enable SAML C14N10 - Tooltip": "在SAML协议里使用C14N10,而不是C14N11",
|
||||
"Enable SAML POST binding": "Enable SAML POST binding",
|
||||
"Enable SAML POST binding - Tooltip": "The HTTP POST binding uses input fields in a HTML form to send SAML messages, Enable when your SP use it",
|
||||
"Enable SAML compression": "压缩SAML响应",
|
||||
"Enable SAML compression - Tooltip": "Casdoor作为SAML IdP时,是否压缩SAML响应信息",
|
||||
"Enable SAML POST binding": "启用SAML POST Binding",
|
||||
"Enable SAML POST binding - Tooltip": "HTTP POST绑定使用HTML表单中的输入字段发送SAML消息,当SP使用它时启用",
|
||||
"Enable side panel": "启用侧面板",
|
||||
"Enable signin session - Tooltip": "从应用登录Casdoor后,Casdoor是否保持会话",
|
||||
"Enable signup": "启用注册",
|
||||
@ -757,7 +757,7 @@
|
||||
"Parse metadata successfully": "解析元数据成功",
|
||||
"Path prefix": "路径前缀",
|
||||
"Path prefix - Tooltip": "对象存储的Bucket路径前缀",
|
||||
"Please use WeChat and scan the QR code to sign in": "请使用微信扫描二维码登录",
|
||||
"Please use WeChat to scan the QR code and follow the official account for sign in": "Please use WeChat to scan the QR code and follow the official account for sign in",
|
||||
"Port": "端口",
|
||||
"Port - Tooltip": "请确保端口号打开",
|
||||
"Private Key": "私钥",
|
||||
|
Loading…
x
Reference in New Issue
Block a user