GtGoSdk

package module
v3.2.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2016 License: Apache-2.0 Imports: 12 Imported by: 1

README

Gt Golang SDK
===============
极验验证的Golang SDK目前提供基于Beego框架的DEMO。

本项目是面向服务器端的,具体使用可以参考极验的 `文档 <http://www.geetest.com/install/sections/idx-server-sdk.html>`_ ,客户端相关开发请参考极验的 `前端文档。 <http://www.geetest.com/install/>`_.

开发环境
----------------

 - Golang (推荐1.6.2以上版本)
 - Beego (推荐1.6.1以上版本)

快速开始
---------------

下面使用示例代码的均以Beego框架为例。

1. 获取代码

通过go get获取代码:

.. code-block:: bash

    $ go get github.com/GeeTeam/GtGoSdk

2. 初始化验证


在调用GeetestLib前请自行在app.conf设定公钥和私钥,用户id为可选项,默认为空字符串:

.. code-block :: ini

  PrivateKey = "你的私钥"
  CaptchaID = "你的公钥"

根据自己的私钥初始化验证

.. code-block :: go

    func (ctl *RegisterController)Get() {
        userID := ""
        gt := GtGoSdk.GeetestLib(PrivateKey, CaptchaID)
        status := gt.PreProcess(userID)
        ctl.SetSession(GtGoSdk.GT_STATUS_SESSION_KEY, status)
        ctl.SetSession("user_id", userID)
        responseStr := gt.GetResponseStr()
        ctl.Ctx.WriteString(responseStr)
    }

4. 二次验证

.. code-block :: go

    func (ctl *ValidateController)Post() {
        var result bool
        var respstr string
        gt := GtGoSdk.GeetestLib(PrivateKey, CaptchaID)
        challenge := ctl.GetString(GtGoSdk.FN_CHALLENGE)
        validate := ctl.GetString(GtGoSdk.FN_VALIDATE)
        seccode := ctl.GetString(GtGoSdk.FN_SECCODE)
        status := ctl.GetSession(GtGoSdk.GT_STATUS_SESSION_KEY).(int)
        userID := ctl.GetSession("user_id").(string)
        if status == 0 {
            result = gt.FailbackValidate(challenge, validate, seccode)
        } else {
            result = gt.SuccessValidate(challenge, validate, seccode, userID)
        }
        if result {
            respstr = "success"
        } else {
            respstr = "fail"
        }
        ctl.Ctx.WriteString(respstr)
    }


运行demo
---------------------

1. Beego demo运行:进入demo文件夹,运行bee run:

.. code-block:: bash

    $ cd $GOPATH/src/github.com/GeeTeam/GtGoSdk/demo
    $ bee run

在浏览器中访问http://localhost:8080即可看到Demo界面

发布日志
-----------------
+ 3.2.1

 - 增加GetResponseMap()接口,适用于无session环境下获得map对象

+ 3.2.0

 - 参照 `gt-python-sdk <https://github.com/GeeTeam/gt-python-sdk/>`_ 3.2.0版实现极验接口

Documentation

Index

Constants

View Source
const (
	FN_CHALLENGE = "geetest_challenge"
	FN_VALIDATE  = "geetest_validate"
	FN_SECCODE   = "geetest_seccode"

	GT_STATUS_SESSION_KEY = "gt_server_status"

	API_URL          = "http://api.geetest.com"
	REGISTER_HANDLER = "/register.php"
	VALIDATE_HANDLER = "/validate.php"

	VERSION = "go_3.2.1"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Geetest

type Geetest struct {
	// contains filtered or unexported fields
}

func GeetestLib

func GeetestLib(privateKey, captchaID string) *Geetest

CreateGeeTest 创建GeetestLib实例

func (*Geetest) FailbackValidate

func (gt *Geetest) FailbackValidate(challenge, validate, seccode string) bool

FailbackValidate failback模式的二次验证方式.在本地对轨迹进行简单的判断返回验证结果.

func (*Geetest) GetResponseMap

func (gt *Geetest) GetResponseMap() map[string]interface{}

func (*Geetest) GetResponseStr

func (gt *Geetest) GetResponseStr() string

func (*Geetest) PreProcess

func (gt *Geetest) PreProcess(userID string) int

PreProcess 验证初始化预处理.

func (*Geetest) SuccessValidate

func (gt *Geetest) SuccessValidate(challenge, validate, seccode, userID string) bool

SuccessValidate 正常模式的二次验证方式.向geetest server 请求验证结果.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL