backend for xcvr appview
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

added logging

+20 -14
+20 -14
server/internal/oauth/service.go
··· 79 79 func (s *Service) StartAuthFlow(ctx context.Context, handle string) (*OAuthRequest, *OauthFlowResult, error) { 80 80 did, err := s.resolveHandle(handle) 81 81 if err != nil { 82 - return nil, nil, err 82 + return nil, nil, errors.New("error resolving handle:" + err.Error()) 83 83 } 84 84 dpopPrivKey, err := helpers.GenerateKey(nil) 85 85 if err != nil { 86 - return nil, nil, err 86 + return nil, nil, errors.New("error generating key:" + err.Error()) 87 87 } 88 88 dpopPrivKeyJson, err := json.Marshal(dpopPrivKey) 89 89 if err != nil { 90 - return nil, nil, err 90 + return nil, nil, errors.New("error marshaling privkey to json:" + err.Error()) 91 91 } 92 92 parResp, metadata, service, err := s.makeOAuthRequest(ctx, did, handle, dpopPrivKey) 93 93 if err != nil { 94 - return nil, nil, err 94 + return nil, nil, errors.New("error making oauth request:" + err.Error()) 95 95 } 96 96 oauthReq := OAuthRequest{ 97 97 AuthserverIss: metadata.Issuer, ··· 115 115 func (s *Service) makeOAuthRequest(ctx context.Context, did string, handle string, dpop jwk.Key) (resp *atoauth.SendParAuthResponse, meta *atoauth.OauthAuthorizationMetadata, service string, err error) { 116 116 service, err = s.resolveService(ctx, did) 117 117 if err != nil { 118 - return 118 + err = errors.New("error resolving service:" + err.Error()) 119 + return 119 120 } 120 121 authserver, err := s.oauth.ResolvePdsAuthServer(ctx, service) 121 122 if err != nil { 123 + err = errors.New("error resolving pds service:" + err.Error()) 122 124 return 123 125 } 124 126 meta, err = s.oauth.FetchAuthServerMetadata(ctx, service) 125 127 if err != nil { 128 + err = errors.New("error fetching auth server metadata:" + err.Error()) 126 129 return 127 130 } 128 131 resp, err = s.oauth.SendParAuthRequest(ctx, authserver, meta, handle, "atproto transition:generic", dpop) 132 + if err != nil { 133 + err = errors.New("error sending PAR auth request:" + err.Error()) 134 + } 129 135 return 130 136 } 131 137 ··· 147 153 } 148 154 req, err := http.NewRequestWithContext(ctx, "GET", url, nil) 149 155 if err != nil { 150 - return "", err 156 + return "", errors.New("error crafting request:" + err.Error()) 151 157 } 152 158 resp, err := s.http.Do(req) 153 159 if err != nil { 154 - return "", err 160 + return "", errors.New("error evaluating request:" + err.Error()) 155 161 } 156 162 defer resp.Body.Close() 157 163 if resp.StatusCode != 200 { ··· 159 165 } 160 166 b, err := io.ReadAll(resp.Body) 161 167 if err != nil { 162 - return "", err 168 + return "", errors.New("error reading response body:" + err.Error()) 163 169 } 164 170 var identity Identity 165 171 err = json.Unmarshal(b, &identity) 166 172 if err != nil { 167 - return "", err 173 + return "", errors.New("error unmarshaling to identity:" + err.Error()) 168 174 } 169 175 var service *string 170 176 for _, svc := range identity.Service { ··· 185 191 reqUrl := "https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?" + params.Encode() 186 192 resp, err := s.http.Get(reqUrl) 187 193 if err != nil { 188 - return "", err 194 + return "", errors.New("error making handle -> did resolution request:" + err.Error()) 189 195 } 190 196 defer resp.Body.Close() 191 197 ··· 194 200 } 195 201 b, err := io.ReadAll(resp.Body) 196 202 if err != nil { 197 - return "", err 203 + return "", errors.New("error reading handle -> did resolution response" + err.Error()) 198 204 } 199 205 var resDid did 200 206 err = json.Unmarshal(b, &resDid) 201 207 if err != nil { 202 - return "", err 208 + return "", errors.New("error unmarshaling resDid:" + err.Error()) 203 209 } 204 210 return resDid.Did, nil 205 211 } ··· 207 213 func (s *Service) OauthCallback(ctx context.Context, oauthRequest *OAuthRequest, params CallbackParams) (*Session, error) { 208 214 jwk, err := helpers.ParseJWKFromBytes([]byte(oauthRequest.DpopPrivKey)) 209 215 if err != nil { 210 - return nil, err 216 + return nil, errors.New("error parsing jwk:" + err.Error()) 211 217 } 212 218 initialTokenResp, err := s.oauth.InitialTokenRequest(ctx, params.Code, params.Iss, oauthRequest.PkceVerifier, oauthRequest.DpopAuthServerNonce, jwk) 213 219 if err != nil { 214 - return nil, err 220 + return nil, errors.New("error in initialTokenRequest:"+ err.Error()) 215 221 } 216 222 if initialTokenResp.Scope != "atproto transition:generic" { 217 223 return nil, errors.New(fmt.Sprintf("incorrect scope: %s", initialTokenResp.Scope))