// アクセストークンを使って、ID プロバイダからアカウント情報を取得する。 func (this *environment) getAccountInfo(req *callbackRequest, tok *token.Element, idp idpdb.Element) (attrs map[string]interface{}, err error) { acntReq, err := http.NewRequest("GET", idp.AccountUri(), nil) if err != nil { return nil, erro.Wrap(err) } acntReq.Header.Set(tagAuthorization, tagBearer+" "+tok.Id()) server.LogRequest(level.DEBUG, acntReq, this.debug, this.logPref) resp, err := http.DefaultClient.Do(acntReq) if err != nil { return nil, erro.Wrap(err) } defer resp.Body.Close() server.LogResponse(level.DEBUG, resp, this.debug, this.logPref) log.Info(this.logPref, "Got account info response from "+idp.Id()) if err := json.NewDecoder(resp.Body).Decode(&attrs); err != nil { return nil, erro.Wrap(err) } log.Info(this.logPref, "Got account info") return attrs, nil }