如何使用Facebook登录信息从Android应用程序中的后端服务器访问数据? [英] How to use facebook login to access data from backend server in Android app?

查看:342
本文介绍了如何使用Facebook登录信息从Android应用程序中的后端服务器访问数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个应用程序,在该应用程序中,我必须使用Facebook登录名才能从后端服务器访问数据.我对此进行了搜索并得到了:

I am working on an app in which I have to use facebook login for accessing data from my backend server. I have search on this and got that:

  1. 首先,用户将输入facebook的用户名和密码,然后将请求发送到服务器.
  2. 如果用户通过了身份验证,则获取用户的访问令牌.
  3. 在服务器上发送此访问令牌.
  4. 服务器将验证此访问令牌.

我已成功将我的应用程序与Facebook连接,即现在用户可以从我的应用程序登录到Facebook.但是我现在不知道如何获取用户的访问令牌以及如何在服务器上验证此访问令牌.

I have successfully connected my app with facebook i.e, now user can logged from my app to facebook. But I don't now how can I get the access token of user and also how I can verify this access token on server.

您能为此提供一些示例代码吗?请帮助我,我长期以来一直陷在其中.

Can you provide me some sample code for this. Please help me I am stuck in it from a long time.

推荐答案

我不确定这是否是最佳做法,但这就是我的做法.

I'm not sure if it is best practice, but this is how I do it.

当您通过任一SDK在客户端设备上的Android中登录用户时,您将获得用户访问令牌.令牌可以按以下方式访问

When you log a user in Android on the client device via any of the SDKs, you get an user access token. The token can be accessed as follows

AccessToken token = AccessToken.getCurrentAccessToken();
if (token != null) {
  Toast.makeText(getActivity(), token, Toast.LENGTH_LONG).show();
}

然后您可以将此令牌作为POST变量传递给后端:

You can then pass this token to the backend as a POST variable:

'access_token': '32b409xceBV78d2932b409xceBV78d29'

使用后端SDK,您可以再次获取用户信息.这是python中的示例

Using a backend SDK, you can get the user info again. Here's a example in python

facebook_graph = facebook.GraphAPI(access_token)

如果电子邮件和fbid与存储在数据库中的用户信息匹配,则授予访问权限:

If the email and fbid match the user information stored in your database, you grant access:

user = get_user(email=facebook_graph['email'], fbid=facebook_graph['fbid'])
login(request, user)

这篇关于如何使用Facebook登录信息从Android应用程序中的后端服务器访问数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆