我想访问汗学院服务,这需要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
}
问题
它始终将我重定向到自定义默认网址。我想重定向我自己的回调网址。
答案 0 :(得分:0)
我遇到了类似的情况,通过将回调作为URL查询来修复。
https://www.khanacademy.org/api/auth2/request_token?oauth_callback=yourcallbackurl