An atproto PDS written in Go
103
fork

Configure Feed

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

at v0.8.3 37 lines 1.2 kB view raw
1package server 2 3import ( 4 "github.com/haileyok/cocoon/internal/helpers" 5 "github.com/labstack/echo/v4" 6) 7 8type AccountRevokeInput struct { 9 Token string `form:"token"` 10} 11 12func (s *Server) handleAccountRevoke(e echo.Context) error { 13 ctx := e.Request().Context() 14 logger := s.logger.With("name", "handleAcocuntRevoke") 15 16 var req AccountRevokeInput 17 if err := e.Bind(&req); err != nil { 18 logger.Error("could not bind account revoke request", "error", err) 19 return helpers.ServerError(e, nil) 20 } 21 22 repo, sess, err := s.getSessionRepoOrErr(e) 23 if err != nil { 24 return e.Redirect(303, "/account/signin") 25 } 26 27 if err := s.db.Exec(ctx, "DELETE FROM oauth_tokens WHERE sub = ? AND token = ?", nil, repo.Repo.Did, req.Token).Error; err != nil { 28 logger.Error("couldnt delete oauth session for account", "did", repo.Repo.Did, "token", req.Token, "error", err) 29 sess.AddFlash("Unable to revoke session. See server logs for more details.", "error") 30 sess.Save(e.Request(), e.Response()) 31 return e.Redirect(303, "/account") 32 } 33 34 sess.AddFlash("Session successfully revoked!", "success") 35 sess.Save(e.Request(), e.Response()) 36 return e.Redirect(303, "/account") 37}