Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java中的facebook登录验证用户_Java_Jsp_Servlets_Oauth_Facebook Oauth - Fatal编程技术网

如何使用java中的facebook登录验证用户

如何使用java中的facebook登录验证用户,java,jsp,servlets,oauth,facebook-oauth,Java,Jsp,Servlets,Oauth,Facebook Oauth,嗨,我正在使用java进行一个web项目,我想让网站用户使用他们的Facebook帐户登录。我试过了 但是没有得到解决方案我可以向您推荐OAuth库或其改进的fork。如果您对使用示例感兴趣,请查看我的项目 首先,您需要获取OauthService实例: OAuthService service = new ServiceBuilder() .provider(FacebookApi.class) .apiKey("key").apiSecret(

嗨,我正在使用java进行一个web项目,我想让网站用户使用他们的Facebook帐户登录。我试过了


但是没有得到解决方案

我可以向您推荐OAuth库或其改进的fork。如果您对使用示例感兴趣,请查看我的项目

首先,您需要获取OauthService实例:

OAuthService service = new ServiceBuilder()
            .provider(FacebookApi.class)
            .apiKey("key").apiSecret("secret")
            .scope("email").callback("https://hostname/endpoint/")
            .build();
然后,您需要将用户重定向到facebook页面,他将在该页面上授予您的应用程序/登录权限:

String redirectUrl = service.getAuthorizationUrl(NULL_TOKEN);
response.sendRedirect(redirectUrl);
Facebook将调用您的回调uri,您需要获取参数
code
,并获取访问令牌:

String verifierValue = request.getParameter("code");
if (verifierValue == null) {
    log.warn("Callback did not receive code parameter!");
    return false;
}

Verifier verifier = new Verifier(verifierValue);
Token accessToken = service.getAccessToken(NULL_TOKEN, verifier);
最后,是时候使用此令牌向Facebook询问用户详细信息了:

OAuthRequest resourceRequest = new OAuthRequest(Verb.GET, RESOURCE_URL);
service.signRequest(accessToken, resourceRequest);
Response resourceResponse = resourceRequest.send();

JsonObject jsonObject = JsonObject.readFrom(resourceResponse.getBody());
JsonValue value = jsonObject.get("username");

参见课程。

我建议使用Scribe

在这里查看如何使用Facebook和scribe的示例:

@TechGuy-你有什么问题吗?嗨,你能检查一下这个问题吗:举个完整的例子怎么样?我很难理解为什么我当前的web应用程序使用Facebook验证用户,但它只是为每个用户返回相同的Facebook ID。我真的很想找到一个工作的开始-结束的例子,为了理解一切是如何工作的。