Twitter 인증 구성하기
본문에서는 사용자가 자신의 Twitter 계정으로 이전 문서에서 생성한 예제 ASP.NET Core 프로젝트에 로그인 할 수 있도록 구성하는 방법을 살펴봅니다.
Twitter에서 앱 생성하기
-
Create New App 버튼을 누르고 Name 항목에 응용 프로그램 이름을 입력합니다:
-
기본 URI에 signin-twitter 세그먼트가 추가된 URI를 Callback URL 항목에 입력합니다.
가령 https://localhost:44320/signin-twitter
와 같이 말입니다:
노트 :
테스트를 마치고 실제로 사이트를 배포할 때는 이 항목에 새로운 공개 URL을 등록해야합니다.
역주 :
2017년 2월 현재, Create an application 페이지에는 본문의 그림과는 달리 Description 항목과 Website 항목이 추가로 제공되어 있으며 이 항목들도 필수로 입력해야 합니다.
또한, Developer Agreement도 체크하여 동의해야 합니다.
노트 :
직접 응용 프로그램에 경로로 signin-twitter을 구성할 필요는 없습니다.
Twitter 미들웨어가 이 경로에 대한 요청을 자동으로 가로채서 OAuth 흐름을 구현하도록 처리해줍니다.
-
Create your Twitter application 버튼을 누릅니다.
그러면 새로운 응용 프로그램의 세부 정보가 나타납니다:
Twitter ConsumerKey 및 ConsumerSecret 저장하기
이미 소셜 로그인에 대한 소개 페이지에서 설명했던 것처럼, Twitter의 ConsumerKey
및 ConsumerSecret
같은 민감한 설정은 응용 프로그램의 구성 파일에 직접 저장하는 것보다는 Secret Manager 도구를 활용해서 응용 프로그램 구성과 연결하는 것이 좋습니다.
-
Keys and Access Tokens 탭으로 이동합니다.
Consumer Key
및 Consumer Secret
을 기억해둡니다:
다음은 Secret Manager를 통해서 저장된 구성값을 읽는 코드입니다:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
Twitter 미들웨어 활성화하기
노트 :
만약 Microsoft.AspNetCore.Authentication.Twitter 패키지가 설치되어 있지 않다면 NuGet을 이용해서 패키지를 설치하십시오.
또는 프로젝트 디렉터리에서 다음 명령어를 실행하셔도 됩니다:
dotnet install Microsoft.AspNetCore.Authentication.Twitter
Startup.cs
파일의 Configure
메서드에서 Twitter 미들웨어를 추가합니다:
app.UseTwitterAuthentication(new TwitterOptions()
{
ConsumerKey = Configuration["Authentication:Twitter:ConsumerKey"],
ConsumerSecret = Configuration["Authentication:Twitter:ConsumerSecret"]
});
Twitter로 로그인하기
응용 프로그램을 실행하고 Log in을 클릭합니다.
그러면 페이지에서 Twitter를 통한 로그인 버튼이 제공되는 것을 확인할 수 있습니다:
Twitter 버튼을 클릭하면 인증을 위해 Twitter로 재지정됩니다:
Twitter 자격 증명을 입력하고 나면 이메일을 설정할 수 있는 웹 사이트의 페이지로 다시 재지정됩니다.
이제 Twitter 자격 증명을 이용해서 로그인을 할 수 있습니다:
후속 과정
-
본문에서는 Twitter를 통한 인증 방법을 살펴봤습니다.
비슷한 방법으로 이전 페이지에서 소개한 다른 공급자들을 이용한 인증을 구성할 수 있습니다.
-
웹 사이트를 Azure 웹 앱에 게시하면 Twitter 개발자 포털에서 Consumer Secret
을 재설정해야 합니다.
-
Authentication:Twitter:ConsumerKey
및 Authentication:Twitter:ConsumerSecret
은 Azure 포털의 앱 설정에서 구성할 수 있습니다.
환경 변수에서 키를 읽도록 구성 시스템이 설정됩니다.
노트 :
이 설정을 누락할 경우, Azure 웹 앱에 접근할 때 500 오류가 발생합니다.
다음 그림은 본문의 내용을 테스트하기 위해서 만든 elpTest라는 Azure 웹 앱의 설정 모습을 보다 구체적으로 보여줍니다.