汗学院重定向默认URL GO lang

时间:2016-08-17 07:27:52

标签: go oauth khan-academy

我想访问汗学院服务,这需要OAuth消费者等身份验证。身份验证工作正常我使用了以下oauth library

步骤

  • 获取请求令牌

  • 现在我有了request_token。我需要得到用户的批准。

  

https://www.khanacademy.org/api/auth2/authorize?oauth_token=t6492705587593216

Khan academy documentation says

当用户点击"接受"按钮,它们将被重定向到oauth_callback指定的回调网址(如果未提供自定义回调网址,则为/api/auth/default_callback

https://www.khanacademy.org/api/auth/default_callback?oauth_token_secret=NmZ5nFEttE8gwnnz&oauth_verifier=gyM9xcZVtg&oauth_token=t6492705587593216

这是我的GO代码

const (
    CONSUMER_KEY  = "XXXXX"
    CONSUMER_SECRET = "XXXXXXXX"
)

func GetRequestToken(r *http.Request,unitAttemptID int64)(string,error){
    c := oauth.NewConsumer(
        CONSUMER_KEY,
        CONSUMER_SECRET,
        oauth.ServiceProvider{
            RequestTokenUrl:   "https://www.khanacademy.org/api/auth2/request_token",
            AuthorizeTokenUrl: "https://www.khanacademy.org/api/auth2/authorize",
            AccessTokenUrl:    "https://www.khanacademy.org/api/auth2/access_token",
            ExerciseUrl:      "https://www.khanacademy.org/api/v1/user/exercises",
        })
    callback := "http://127.0.0.1/example/index.php/khan/authorizeRequestToken"
    requestToken, u, err := c.GetRequestTokenAndUrl(callback)
    if err != nil {
        fmt.Println("err is  - ",err)
        return "",err
    }
    fmt.Println("requestToken ",requestToken)
    return u,nil
 }

问题

它始终将我重定向到自定义默认网址。我想重定向我自己的回调网址。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的情况,通过将回调作为URL查询来修复。

https://www.khanacademy.org/api/auth2/request_token?oauth_callback=yourcallbackurl