[bugfix] remove <= 0 expires_in from oauth token response (#731)

* remove <= 0 expired_in from oauth token response

* go fmt
This commit is contained in:
tobi 2022-07-28 16:43:42 +02:00 committed by GitHub
parent 8106b69856
commit fc81e6443a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -133,6 +133,23 @@ func (s *s) HandleTokenRequest(r *http.Request) (map[string]interface{}, gtserro
} }
data := s.server.GetTokenData(ti) data := s.server.GetTokenData(ti)
if expiresInI, ok := data["expires_in"]; ok {
switch expiresIn := expiresInI.(type) {
case int64:
// remove this key from the returned map
// if the value is 0 or less, so that clients
// don't interpret the token as already expired
if expiresIn <= 0 {
delete(data, "expires_in")
}
default:
err := errors.New("expires_in was set on token response, but was not an int64")
return nil, gtserror.NewErrorInternalError(err)
}
}
// add this for mastodon api compatibility
data["created_at"] = ti.GetAccessCreateAt().Unix() data["created_at"] = ti.GetAccessCreateAt().Unix()
return data, nil return data, nil