더북(TheBook)

9.3 인증 처리하기

채팅을 하려면 대화를 주고받는 사람이 서로 누구인지 알 수 있어야 한다. 이를 위해 회원가입과 로그인 기능을 제공하여 모든 사용자는 로그인을 하게 하고, 채팅 메시지에는 로그인한 사용자의 정보를 담아 메시지를 전달하는 방법을 생각해 볼 수 있다.

로그인과 인증 처리는 웹 애플리케이션 대부분에 필요한 기능이다. 현재는 이미 많은 소셜 서비스에서 아이디 하나로 다른 사이트에서도 로그인할 수 있는 소셜 로그인을 지원하다. 여기서도 소셜 로그인으로 로그인을 처리해 보자. 또한, 로그인과 동시에 세션을 생성하고 생성된 세션에 로그인한 사용자 정보를 저장하여, 저장한 정보를 바탕으로 인증을 처리하는 기능을 구현해 보자.

지금부터 소셜 로그인을 구현하기 위해 사용할 패키지를 알아보자.

세션 관리에는 negroni-sessions 패키지를 사용한다. negroni로 구동한 웹 애플리케이션에서 세션을 생성하고 관리해주는 패키지이다.

명령 프롬프트

$ go get github.com/goincremental/negroni-sessions

소셜 로그인에는 gomniauth 패키지를 사용해 보자. gomniauth 패키지는 다양한 소셜 인증 서비스를 하나의 일관된 방식으로 사용할 수 있게 추상화된 접근 방식을 제공한다. 이번 실습에는 구글의 OAuth2 서비스를 사용한다.

명령 프롬프트

$ go get github.com/stretchr/gomniauth

$ go get github.com/stretchr/gomniauth/providers/google

그림 9-6 인증 처리 구현
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.