Golang 新手,我知道接口有点像合约,保证某些东西会以某种方式运行,这很酷,如果我制作它的本地副本,我基本上可以重写它的运行方式(根据我的理解,如有不对请指正)这是我到目前为止所拥有的package registerimport ( "log" "net/http" "github.com/yohcop/openid-go")var nonceStore = &openid.SimpleNonceStore{ Store: make(map[string][]*openid.Nonce)}var discoveryCache = &SimpleDiscoveryCache{}type DiscoveredInfo interface { OpEndpoint() string OPLocalID() string ClaimedID() string}type SimpleDiscoveredInfo struct { opEndpoint, opLocalID, claimedID string}type SimpleDiscoveryCache map[string]DiscoveredInfofunc (s *SimpleDiscoveryCache) Put(id string, info DiscoveredInfo) { db := common.ConnectDB() rows, err := db.Query("INSERT INTO discovery_cache SET id=?, opendpoint=?, oplocalid=?, claimedid=?", id, info.OpEndpoint(), info.OPLocalID(), info.ClaimedID()) if err != nil { panic("Error: " + err.Error()) } log.Println(rows)}func (s *SimpleDiscoveryCache) Get(id string) DiscoveredInfo { db := common.ConnectDB() rows, err := db.Query("SELECT FROM discovery_cache WHERE id=?", id) if err != nil { panic("Error: " + err.Error()) } log.Println(rows) var opEndpoint, opLocalID, claimedID string for rows.Next() { err := rows.Scan(&opEndpoint, &opLocalID, &claimedID) if err != nil { panic("Help!") } } return &SimpleDiscoveredInfo{ opEndpoint, opLocalID, claimedID, }}func DiscoverHandler(w http.ResponseWriter, r *http.Request) { url, err := openid.RedirectURL("http://steamcommunity.com/openid", "http://localhost:1337/login/return", "http://localhost") if err != nil { http.Error(w, "Failed to login", 500) } http.Redirect(w, r, url, 303)}基本上我正在尝试制作自己的,DiscoveryCache以便它使用数据库而不是内存进行存储(按照位于此处的 Go-OpenID 包的指示:https : //github.com/yohcop/openid-go我试图重新创建的部分位于:https : //github.com/yohcop/openid-go/blob/master/discovery_cache.go
1 回答
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消