【问题标题】:Facebook google authentication for android application using django使用 django 对 android 应用程序进行 Facebook google 身份验证
【发布时间】:2016-05-12 07:33:55
【问题描述】:

我正在使用 django rest social auth 进行基于令牌的身份验证(djangorestrframework-jwt),相同的链接是https://github.com/st4lk/django-rest-social-auth。在示例中,它在前端使用 satelizer(基于角的端到端令牌的身份验证模块)进行中间件工作,但是我正在构建一个带有后端的 android 应用程序,因此我被卡住了。任何人都可以帮助我使用任何用于 android 的模块,该模块可以在 Angular 中完成类似 satelizer 的工作,或者我应该为此目的选择不同的社交身份验证,而不是使用休息社交身份验证。

感谢您的帮助。

【问题讨论】:

    标签: android django-rest-framework


    【解决方案1】:

    您可以将django-rest-frameworkpython-social-authdjango-oauth-toolkitdjango-rest-framework-social-oauth2 结合使用

    django-oauth-toolkit 实现 Oauth2 协议并为您的客户端(即 Angular 应用程序、Android 应用程序)提供基于访问令牌的身份验证/授权

    python-social-auth 负责从 Facebook/Google 获取用户详细信息并创建一个用户对象。

    django-rest-framework-social-oauth2 将充当django-oauth-toolkitpython-social-auth 之间的粘合剂。它基本上提供了一个端点,接收 Facebook/Google 提供的访问令牌并返回 django-oauth-toolkit's 访问令牌,该访问令牌将用于向 DRF 发出经过身份验证的请求。

    This 4 部分博客系列将帮助您使用上述所有软件包(django-rest-framework-social-oauth2 除外)

    如果您按照该博客系列中显示的方式在后端(即 Django 项目)上进行设置,则您的客户端上将不需要任何外部模块/包(即 Angular 应用程序/Android 应用程序)

    【讨论】:

    • 感谢 Amrullah,我最终按照您的建议使用了所有的组合。我已经使用了 django-rest-framework-social-oauth2 并且我不必再使用外部包,但是对于将 fb/g+ 令牌转换为应用程序令牌的 conver-token 方法,我该如何添加它在 post save 方法上,以便它为每个创建的用户创建一个新令牌。我查看了这篇文章(github.com/PhilipGarnero/django-rest-framework-social-oauth2/…),但我不确定如何调用转换令牌后保存。感谢您的帮助。
    • @user2689193:我建议您的客户致电/convert-token/ 端点。如果您查看oauthlib.oauth2.rfc6749.tokens.BearerToken.create_token() 方法的签名,您会注意到它需要一个 HttpRequest 对象作为强制参数。这意味着如果您尝试在post_save 信号中为用户创建一个 AccessToken,您将必须创建并提供一个模拟HttpRequest 对象(虽然可以通过django.test.client.RequestFactory 实现,但值得付出努力吗?) .或者可能是,您可以使用 [requests] (docs.python-requests.org/en/master) 包 ...
    • @user2689193: ...向/convert-token/端点发出http请求。 (注意:我不确定这是否总是有效)。你能解释一下,你为什么要在post_save 信号中生成AccessToken 对象?这是某种强迫症吗?
    • 这不是强制的,我想要一个用于从客户端登录的 api,它将检查用户是否存在,如果不存在,则创建一个并返回转换后的令牌。我想避免来自客户端的转换令牌调用。我最终编写了用于在客户端生成令牌的自定义代码,并将其分配给 python-social-auth 用户访问令牌中的用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2011-12-01
    • 2014-12-19
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多