Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.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
Python 使用Django作为后端,在swift中与facebook集成登录_Python_Ios_Django_Facebook_Facebook Graph Api - Fatal编程技术网

Python 使用Django作为后端,在swift中与facebook集成登录

Python 使用Django作为后端,在swift中与facebook集成登录,python,ios,django,facebook,facebook-graph-api,Python,Ios,Django,Facebook,Facebook Graph Api,我正在尝试在我的iOS应用程序中集成Facebook登录,我成功地做到了这一点。之后,我想对用户进行身份验证,并将其保存在我的后端Django中 我所做的是,我有一个web应用程序,其中包含: Django Rest框架 django-rest-framework-social-oauth2 Python社会认证 我研究了OAuth2流程,并尝试了以下给出的示例: 我在Django OAuth toolkit的帮助下在后端创建了一个应用程序,使用给定的客户机id和客户机机密,我成功地使用c

我正在尝试在我的iOS应用程序中集成Facebook登录,我成功地做到了这一点。之后,我想对用户进行身份验证,并将其保存在我的后端Django中

我所做的是,我有一个web应用程序,其中包含:

  • Django Rest框架
  • django-rest-framework-social-oauth2
  • Python社会认证
我研究了OAuth2流程,并尝试了以下给出的示例:

我在Django OAuth toolkit的帮助下在后端创建了一个应用程序,使用给定的客户机id和客户机机密,我成功地使用curl和Facebook提供的访问令牌发送了一个POST请求。它还给我一本这样的字典

{“访问令牌”:“此处的访问令牌”,“令牌类型”:“承载者”,“到期令牌”:36000,“刷新令牌”:“此处的刷新令牌”,“作用域”:“读写”}

我有很多困惑,所以我如何从前端获取用户,然后在后端关联并创建一个用户,然后检查所有操作是否由该用户完成(如引用该用户)

我所了解的是,在我的前端,也就是我的swift应用程序中,我应该让我的用户登录Facebook。Facebook对用户进行身份验证,然后返回访问令牌。我应该将该访问令牌发送到我的API并从那里获取访问令牌?我必须为它编写一些自定义视图吗?任何帮助都将不胜感激

注意:我已经阅读了所有android、iOS到Django的问题、教程和文章

更新-1:


通过iOS应用程序,我可以使用Facebook登录用户。我将Facebook令牌传递给/authorize/convert-token/url,并获取一个访问令牌。文档中说,您应该在所有请求中使用此访问令牌。作为一个新手,我应该怎么做?将access_令牌保存在我的iOS应用程序中,以及如何不断使用该令牌发出请求?

首先安装用于iOS的Facebook SDK。这将为您提供一个登录按钮,您可以将其放入应用程序:

获得Facebook的auth token后,您可以在自己的服务器上进行令牌转换,以获得access_令牌(如上所述,使用/authorize/convert token/)。这是可以包含在对Django服务器的HTTP请求头中的令牌(以下示例使用Alamofire):


我得到了访问令牌,并且能够使用Alamofire传递它。我得到一个通行证。我应该如何在所有请求中使用此令牌?一旦您转换了令牌,您就可以使用上面的行。我只是调用了access\u token authToken。嘿!你明白了吗?嗨@shrerangaraju!是的,如果您阅读了上面的Update-1,这就是您将如何进行的,并且一旦您从后端获得了访问令牌,您将在所有进一步的请求中使用该令牌。
headers = ["Authorization": "Bearer " + access_token]
Alamofire.request(requestUrl, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: headers)