현재 golang (고릴라 포함)에 웹 응용 프로그램을 구축 중이며 소수의 API 끝점을 구현했습니다.수백, 수천 개의 API 엔드 포인트에 대한 인증을 확인하는 방법은 무엇입니까?
func checkAuthorizedUser (r * http.Request) error {
uid, err := CheckRequestUser (r.Cookie("uid"))
if err != nil {
return errors.New("Can't find cookie value for uid")
}
if !IsValidUser (uid.Value) {
return errors.New("Not a valid user")
}
return nil
}
어떻게 나에게 발생 : 그러나, 나는 때마다 내가 요청이 승인되면 내가 확인하는 핸들러 함수의 몸체에 아래의 기능을 추가 할 필요가
func CreateUserHandler(w http.ResponseWriter, r *http.Request) {}
같은 기능을 구현하는 것으로 나타났습니다 지금 당장은 모든 핸들러 함수에 checkAuthorizedUser()
을 추가해야한다는 것과 내가 지금까지 많은 핸들러 함수를 가지고 있다는 것입니다. 클라이언트가 모든 처리기 기능에서 명시 적으로 인증을 확인하는 것 이외의 특정 끝점에 액세스 할 수있는 권한이 있는지 확인하는 더 좋은 방법이 있는지 궁금합니다.
감사합니다! 그러나 이는 핸들러 함수를 감싸는 패키지가 본질적으로 인증 프로세스를 처리한다는 것을 의미합니까? 모델 대신 컨트롤러가 인증을 처리해야합니까? –