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이 있습니다. 나는 그런 것을 가지고있다 :질문 1) localhost에서도 openID 로그인을 만드는 방법.