English | δΈζ
βοΈ If it helps you, please give a star.
| Project | Desc |
|---|---|
| document | GoCaptcha Documentation |
| online demo | GoCaptcha Online Demo |
| go-captcha-example | Golang + Web + APP Example |
| go-captcha-assets | Embedded Resource Assets for Golang |
| go-captcha | Golang CAPTCHA Library |
| go-captcha-jslib | JavaScript CAPTCHA Library |
| go-captcha-vue | Vue CAPTCHA Library |
| go-captcha-react | React CAPTCHA Library |
| go-captcha-angular | Angular CAPTCHA Library |
| go-captcha-svelte | Svelte CAPTCHA Library |
| go-captcha-solid | Solid CAPTCHA Library |
| go-captcha-uni | UniApp CAPTCHA, compatible with Apps, Mini-Programs, and Fast Apps |
| go-captcha-service | GoCaptcha Service, supports binary and Docker image deployment, provides HTTP/gRPC interfaces, supports standalone and distributed modes (service discovery, load balancing, dynamic configuration) |
| go-captcha-service-sdk | GoCaptcha Service SDK Toolkit, includes HTTP/gRPC request interfaces, supports static mode, service discovery, and load balancing. |
| ... |
yarn add go-captcha-uni # or npm install go-captcha-uni # or pnpm install go-captcha-uni <go-captcha-uni type="click" :data="clickCaptData" :config="clickCaptConfig" :theme="clickThemeColor" @event-click="handleClickEvent" @event-confirm="handleConfirmEvent" @event-refresh="handleRefreshEvent" @event-close="handleCloseEvent"/><go-captcha-uni type="click" :config="{}" :theme="{}" :data="{}" ref="domRef" /> <script> // call methods const domRef = ref(null) domRef.value.clear() domRef.value.refresh() </script>// config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; buttonText?: string; iconSize?: number; dotSize?: number; } // data = {} interface Data { image: string; thumb: string; } // theme = {} interface Theme { textColor?: string; // '#ffffff' bgColor?: string; btnColor?: string; btnDisabledColor?: string; btnBgColor?: string; btnBorderColor?: string; activeColor?: string; borderColor?: string; iconColor?: string; loadingIconColor?: string; bodyBgColor?: string; dotColor?: string; dotBgColor?: string; dotBorderColor?: string; } // @events interface _ { '@event-click'?: (x: number, y: number) => void; '@event-refresh'?: () => void; '@event-close'?: () => void; '@event-confirm'?: (dots: Array<ClickDot>, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, }<go-captcha-uni type="slide" :config="{}" :theme="{}" :data="{}" ref="domRef" /> <script> // call methods const domRef = ref(null) domRef.value.clear() domRef.value.refresh() </script>// config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface Data { thumbX: number; thumbY: number; thumbWidth: number; thumbHeight: number; image: string; thumb: string; } // theme = {} interface Theme { textColor?: string; // '#ffffff' bgColor?: string; borderColor?: string; iconColor?: string; dragBarColor?: string; dragBgColor?: string; dragIconColor?: string; loadingIconColor?: string; bodyBgColor?: string; } // @events interface _ { move?: (x: number, y: number) => void; refresh?: () => void; close?: () => void; confirm?: (point: SlidePoint, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, }<go-captcha-uni type="drag" :config="{}" :theme="{}" :data="{}" ref="domRef" /> <script> // call methods const domRef = ref(null) domRef.value.clear() domRef.value.refresh() </script>// config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface Data { thumbX: number; thumbY: number; thumbWidth: number; thumbHeight: number; image: string; thumb: string; } // theme = {} interface Theme { textColor?: string; // '#ffffff' bgColor?: string; borderColor?: string; iconColor?: string; loadingIconColor?: string; bodyBgColor?: string; } // @events interface _ { '@event-move'?: (x: number, y: number) => void; '@event-refresh'?: () => void; '@event-close'?: () => void; '@event-confirm'?: (point: SlideRegionPoint, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, }<go-captcha-uni type="rotate" :config="{}" :theme="{}" :data="{}" ref="domRef" /> <script> // call methods const domRef = ref(null) domRef.value.clear() domRef.value.refresh() </script>// config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface Data { image: string; thumb: string; thumbSize: number; } // theme = {} interface Theme { textColor?: string; // '#ffffff' bgColor?: string; borderColor?: string; iconColor?: string; dragBarColor?: string; dragBgColor?: string; dragIconColor?: string; roundColor?: string; loadingIconColor?: string; bodyBgColor?: string; } // @events interface _ { '@event-rotate'?: (angle: number) => void; '@event-refresh'?: () => void; '@event-close'?: () => void; '@event-confirm'?: (angle: number, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, }<go-captcha-uni type="button" :config="{}" :theme="{}" :data="{}" />// config = {} interface Config { width?: number; height?: number; verticalPadding?: number; horizontalPadding?: number; } // data = {} interface Data { disabled?: boolean; type?: "default" | "warn" | "error" | "success" } // theme = {} interface Theme { textColor?: string; // '#ffffff' bgColor?: string; btnColor?: string; btnDisabledColor?: string; btnBgColor?: string; btnBorderColor?: string; activeColor?: string; borderColor?: string; iconColor?: string; loadingIconColor?: string; bodyBgColor?: string; dotColor?: string; dotBgColor?: string; dotBorderColor?: string; } // @events interface _ { '@event-click'?: () => {} }