2013-08-26 3 views
1

Google App Engine에 대해 openID 로그인을 작성했습니다.Google App Engine에서 openID 로그인 (로컬 호스트에서)

static { 
     openIdProviders = new HashMap<String, String>(); 
     openIdProviders.put("Google", "https://www.google.com/accounts/o8/id"); 
     openIdProviders.put("Yahoo", "yahoo.com"); 
    } 

    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 
     UserService userService = UserServiceFactory.getUserService(); 

     User user = userService.getCurrentUser(); // or req.getUserPrincipal() 
     Set<String> attributes = new HashSet(); 

     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 

     if (user != null) { 
      out.println("Hello <i>" + user.getNickname() + "</i>!"); 
      out.println("[<a href=\"" + userService.createLogoutURL(req.getRequestURI())+ "\">sign out</a>]"); 
     } else { 
      out.println("Sign in at: "); 
      for (String providerName : openIdProviders.keySet()) { 
       String providerUrl = openIdProviders.get(providerName); 
       String loginUrl = userService.createLoginURL(req.getRequestURI(), null, providerUrl, attributes); 
       out.println("[<a href=\"" + loginUrl + "\">" + providerName+ "</a>] "); 
      } 
     } 
    } 

앱을 배포 할 때 모든 것이 잘 작동합니다. 문제가 없습니다. 오픈 아이디 공급자를 선택한 후, 그 페이지로 이동 해요 : 내 서블릿의

sample.appspot.com/_ah/login_redir?claimid=[OPen ID provider]=[my sample page]/_ah/login_required 

합니다.

<servlet> 
     <servlet-name>Authorization</servlet-name> 
     <servlet-class>ge.eid.test.Authorization</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Authorization</servlet-name> 
     <url-pattern>/_ah/login_required</url-pattern> 
    </servlet-mapping> 

ok. 모든 것이 좋습니다! 하지 오픈 ID 로그인이

그래서 난 을 : 나는 로컬 호스트에서 sampe 응용 프로그램을 실행할 때하지만, 나는 다른 리디렉션 URL이 있습니다. 나는 그런 것을 가지고있다 :

enter image description here 질문 1) localhost에서도 openID 로그인을 만드는 방법.

답변

2

이것은 로컬 호스트에서 많은 다른 계정을 시도 할 수 있기 때문에 정상적인 동작이며 매번 실제 계정으로 로그인해야한다면 엉망입니다. 따라서 localhost에서 원하는 이메일을 제공하고 관리자가되기를 원하는지 확인하는 것만으로 OpenID 사용자를 시뮬레이션 할 수 있습니다.