소개
웹 서버에서 인증 메커니즘을 구현하는 것은 사용자 데이터를 보호하고 보호된 리소스에 대한 액세스를 제어합니다. 라우팅을 위해 httprouter 패키지를 사용하고 미들웨어 관리를 위해 Negroni를 사용하는 경우 인증에서 특정 경로를 제외해야 할 수도 있습니다. 이 문서에서는 Negroni에서 경로별 미들웨어를 구현하는 방법을 살펴봅니다.
문제 설명
httprouter 및 Negroni를 사용하여 서버를 설정한 경우 목표는 인증 처리기를 구현하는 것입니다. (authenticator.Get()) 및 하나의 경로(예: "/login")를 제외한 모든 경로에 적용합니다.
해결책
Negroni를 사용한 경로별 미들웨어의 경우 , 각 경로에 대해 별도의 Negroni 인스턴스를 생성해야 합니다. 제공된 예에서는 "/login" 및 "/"에 대해 별도의 Negroni 인스턴스가 생성됩니다. "/login" 경로는 loginHandler만 사용하여 인증에서 제외되는 반면, "/" 경로는 authenticater.Get()과 indexHandler를 모두 활용합니다.
구현
<code class="go">router := httprouter.New() router.Handler("GET", "/login", negroni.New(negroni.HandlerFunc(loginHandler))) router.Handler("GET", "/", negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler))) server := negroni.Classic() server.UseHandler(router) server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret")))) server.Run(":3000")</code>
핵심사항
위 내용은 Negroni에서 경로별 미들웨어를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!