go - oauth2 问题,创建时无法获取 access_token

标签 go oauth-2.0 token

我花了将近 5 个小时在互联网上搜索试图解决这个问题,但没有任何结果。我想得到我的access_token创建时,将其保存到变量中,然后将其存储在 db 中。但是,我无法提取创建的 access_token .

package main

import (
    "fmt"
    "log"
    "net/http"

    oauth2 "gopkg.in/oauth2.v3"
    "gopkg.in/oauth2.v3/models"

    "gopkg.in/oauth2.v3/errors"
    "gopkg.in/oauth2.v3/manage"
    "gopkg.in/oauth2.v3/server"
    "gopkg.in/oauth2.v3/store"
)

func main() {
    manager := manage.NewDefaultManager()

    manager.SetAuthorizeCodeTokenCfg(manage.DefaultAuthorizeCodeTokenCfg)

    manager.MustTokenStorage(store.NewMemoryTokenStore())

    clientStore := store.NewClientStore()
    clientStore.Set("12345", &models.Client{
        ID:     "12345",
        Secret: "12345",
        Domain: "http://localhost:9094",
    })
    manager.MapClientStorage(clientStore)

    srv := server.NewDefaultServer(manager)
    srv.SetAllowGetAccessRequest(true)
    srv.SetClientInfoHandler(server.ClientFormHandler)
    manager.SetRefreshTokenCfg(manage.DefaultRefreshTokenCfg)

    srv.SetInternalErrorHandler(func(err error) (re *errors.Response) {
        log.Println("Internal Error:", err.Error())
        return
    })

    srv.SetResponseErrorHandler(func(re *errors.Response) {
        log.Println("Response Error:", re.Error.Error())
    })

    http.HandleFunc("/token", func(w http.ResponseWriter, r *http.Request) {
        srv.HandleTokenRequest(w, r)
    })

    http.HandleFunc("/protected", validateToken(func(w http.ResponseWriter, r *http.Request) {

        w.Write([]byte("Hello, I'm protected"))
    }, srv))

    log.Fatal(http.ListenAndServe(":9099", nil))

}

func validateToken(f http.HandlerFunc, srv *server.Server) http.HandlerFunc {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

        _, err := srv.ValidationBearerToken(r)
        if err != nil {
            http.Error(w, err.Error(), http.StatusBadRequest)
            return
        }
        f.ServeHTTP(w, r)
    })
}

我会很感激任何帮助,因为我只是一名实习程序员,这对我来说仍然是新的。

谢谢 :)。

最佳答案

没关系,由于插件为您完成工作,因此不可能获得 token 。!!!

关于go - oauth2 问题,创建时无法获取 access_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159582/

相关文章:

c++ - 我无法标记我的角色,我该如何到达那里?

java - 通过 Gmail Java API 刷新 token 时出现 400 错误请求

go - 痛饮 + 去 : unsupported relocation for dynamic symbol

go - 我如何解决无法引用 golang 中未导出的字段或方法 models.Model.getDevices

java - Spring Security oauth2,为什么我的 auth/token 对 CLIENT 进行了身份验证但返回 404?

spring-boot - 如何在 Spring Boot SSO + zuul 中从 OAuth token 中检索范围

windows - 如何使用 FOR 循环分配超过 26 个变量?

go - 找不到包 "google/protobuf"

go - 如何在测试套件的 TestMain 中执行延迟函数?

java - 在 java 上实现的工作 oauth2 提供程序服务器