[C#] Nancy를 사용하여 간단한 Restful Web Hosting 시작하기

게임 서버 관리툴을 만들기 위해서 어떠한 방식이 좋을까 고민하다가 각 머신에 restful web server를 설치해서 특정 명령어를 받아서 처리하도록 하면 되겠다 싶어서 검색해보니 Nancy라는 라이브러리가 있습니다.

아주 간단하게 Resful Web API를 구성할 수 있도록 만들어져 있습니다.

우선 Visual Studio Nuget package manager에서 Nancy.SelfHosting을 설치합니다.

그리고 아래의 코드에서 확장을 시작할 수 있습니다.

using Nancy;
using Nancy.Hosting.Self;
using System;

namespace NancyTest
{
    public class MainModule : NancyModule
    {
        public MainModule() {
            Get["/"] = x => { return "Hello World"; };
            Post["/config"] = x => {
                return 200;
            };
        }
    }

    class Program
    {
        static void Main(string[] args) {
            var hostConfigs = new HostConfiguration {
                UrlReservations = new UrlReservations() { CreateAutomatically = true }
            };
            Uri uri = new Uri("http://localhost:1234");
            using (var host = new NancyHost(hostConfigs, uri)) {
                host.Start();
                Console.WriteLine("http://localhost:1234 hosting started!");
                Console.ReadLine();
            }
        }
    }
}

 

[Firebase] GooglePlay 로그인 실패. the Google id_token is not allowed to be used with this application.

Firebase를 사용한 GooglePlay 인증을 사용하던 중 어느날 갑자기 로그인 실패 오류가 발생하기 시작했습니다.

아무리 검색해 봐도 원인을 파악하기가 힘들어 Firebase Support에 문의를 해보니 다행히 문제를 해결할 수 있었습니다.

문제의 원인은 Firebase Project와 Google Project가 제대로 일치하지 않아서 발생하는 문제였습니다. 그동안은 어째서 잘 동작해왔는지가 오히려 의문스러운 원인...

해결 방법은 아래와 같습니다.

  1. FirebaseConsole로 이동합니다.
  2. 메뉴에서 Authentication -> 로그인방법 -> Google 을 선택합니다.

  3. 외부 프로젝트의 클라이언트 ID 허용(선택사항) 부분에 GooglePlay 인증에 사용한 OAuth 2.0 ClientID를 입력 후 추가해 줍니다.

 

이것으로 문제의 해결이 가능합니다.

잘 되다가 갑자기 문제가 발생한 부분에 대해서는 추가 문의후 기록을 남길 예정.