Golang 新手,我知道接口有點(diǎn)像合約,保證某些東西會(huì)以某種方式運(yùn)行,這很酷,如果我制作它的本地副本,我基本上可以重寫它的運(yùn)行方式(根據(jù)我的理解,如有不對請指正)這是我到目前為止所擁有的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以便它使用數(shù)據(jù)庫而不是內(nèi)存進(jìn)行存儲(chǔ)(按照位于此處的 Go-OpenID 包的指示:https : //github.com/yohcop/openid-go我試圖重新創(chuàng)建的部分位于:https : //github.com/yohcop/openid-go/blob/master/discovery_cache.go
- 1 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)
0/150
提交
取消