An atproto PDS written in Go

show ip for oauth sessions

+2
oauth/provider/models.go
···
Code string `gorm:"index"`
Token string `gorm:"uniqueIndex"`
RefreshToken string `gorm:"uniqueIndex"`
+
Ip string
}
type OauthAuthorizationRequest struct {
···
Sub *string
Code *string
Accepted *bool
+
Ip string
}
+1
server/handle_account.go
···
"UpdatedAt": t.CreatedAt.Format("02 Jan 06 15:04 MST"),
"ExpiresAt": t.CreatedAt.Format("02 Jan 06 15:04 MST"),
"Token": t.Token,
+
"Ip": t.Ip,
})
}
+1 -1
server/handle_oauth_authorize.go
···
code := oauth.GenerateCode()
-
if err := s.db.Exec("UPDATE oauth_authorization_requests SET sub = ?, code = ?, accepted = ? WHERE request_id = ?", nil, repo.Repo.Did, code, true, reqId).Error; err != nil {
+
if err := s.db.Exec("UPDATE oauth_authorization_requests SET sub = ?, code = ?, accepted = ?, ip = ? WHERE request_id = ?", nil, repo.Repo.Did, code, true, e.RealIP(), reqId).Error; err != nil {
s.logger.Error("error updating authorization request", "error", err)
return helpers.ServerError(e, nil)
}
+1
server/handle_oauth_token.go
···
Code: *authReq.Code,
Token: accessString,
RefreshToken: refreshToken,
+
Ip: authReq.Ip,
}, nil).Error; err != nil {
s.logger.Error("error creating token in db", "error", err)
return helpers.ServerError(e, nil)
+1
server/templates/account.html
···
<p>Created: {{ .CreatedAt }}</p>
<p>Updated: {{ .UpdatedAt }}</p>
<p>Expires: {{ .ExpiresAt }}</p>
+
<p>IP Address: {{ .Ip }}</p>
<form action="/account/revoke" method="post">
<input type="hidden" name="token" value="{{ .Token }}" />
<button type="submit" value="">Revoke</button>