최근 적용된 api_username 제한?

저희 애플리케이션에서는 모든 사용자가 사용할 수 있는 전역 API 키를 사용하고 있습니다. 사용자가 로그인되지 않은 경우를 나타내기 위해 가상 사용자 이름(실제 존재하지 않는 사용자)인 anonymous를 컨텍스트로 사용해 왔습니다. 이 방식은 2020년 10월 25일 오후 12시 39분(중부 표준시)까지 약 3년 이상 동안 정상적으로 작동했습니다.

오늘 저는 해당 사용자 이름으로 실제 사용자를 생성하여 이 문제를 완화했습니다. 이번 주말에 새로운 제한 사항이 적용되었거나 API가 업데이트되었나요?

이 문제로 인해 모든 공개 사용자의 댓글을 볼 수 없게 되었으므로, 답변을 부탁드립니다.

감사합니다.

Justin

여기 오류가 있습니다…

이 동작을 변경했을 만한 최근 변경 사항은 알지 못합니다. 항상 이 방식(사용자를 찾을 수 없는 경우 오류 표시)으로 작동한다고 생각했습니다. API 자격 증명에서 사용자 이름을 읽을 수 있는지 확인하는 코드가 바로 이것입니다.

그리고 아래 user는 존재하지 않기 때문에 nil이 되며, 이로 인해 131번째 줄에서 위의 오류 메시지가 발생합니다.

23일 전에 최근 변경 사항이 있었지만, 이는 당신의 상황에 해당하지 않으며 어쨌든 다른 오류 메시지를 반환합니다.

확인을 위해, 1년 이상 지난 이 커밋을 사용하여 로컬 discourse를 설정해 보았는데, 존재하지 않는 사용자를 사용하면 동일한 오류가 발생합니다.

이로 인해 좋은 점 하나는 이제 API 스코프가 있다는 것입니다. 사용자가 read 접근 권한만 필요하면, 해당 API 키를 업데이트하여 더 이상 전체 접근 권한 키가 아니도록 설정할 수 있습니다.

공개 사이트라면, 백엔드에서 인증 없이 요청을 보내 익명 뷰를 가져올 수 있어야 합니다. 속도 제한(rate limit)이 문제가 된다면, 실제로 더미 유저를 사용해야 합니다.

방금 떠올린 다른 한 가지가 있습니다. 바로 revoke api keys days 사이트 설정입니다. 해당 사용자가 존재하지 않기 때문에 그 키의 마지막 사용 날짜가 업데이트되지 않았을 텐데, 키가 자동으로 폐기되었을 가능성이 높습니다. 다만, 애초에 어떻게 유효한 요청을 보낼 수 있었는지는 여전히 확실하지 않습니다.