django-rest-framework - django rest framework social-auth with jwt

标签 django-rest-framework single-page-application django-authentication django-socialauth

嗨,我正在使用 jwt 和 angular 5 开发 SPA django rest 框架。
我建立了登录和注册部分。现在我正在寻找一种方法来添加社交登录或注册到我的应用程序并在深度搜索后获得 jwt 支持我发现一些模块的文档非常不清楚(至少对我来说)..这个模块
https://github.com/st4lk/django-rest-social-auth看起来不错
他说使用:

/api/login/social/jwt_user/

和:
/api/login/social/jwt/

是 jwt 的终点,但是当我使用它们时,这让我一无所获。

我们闲聊了几句,但没有定论
任何人都可以向我和许多像我一样对这个问题感到困惑的开发人员解释解决方案吗?我们应该使用哪个模块,或者如果提到的模块是好的,我们应该如何使用它

最佳答案

有带有 rest-social-auth 的 OAuth 2.0 工作流程

  • 前端需要知道每个社交提供者的以下参数:
  • client_id # 仅在 OAuth 2.0 的情况下,社交服务提供商上注册应用程序的 ID
  • redirect_uri # 到这个 url 社交提供者将使用代码
  • 重定向
  • scope=your_scope # 例如电子邮件
  • response_type=code # 所有 oauth2.0 提供程序都相同
  • 用户确认。
  • 社交提供者使用参数代码重定向回 redirect_uri。
  • 前端现在准备登录用户。为此,请发送带有提供者名称和代码的 POST 请求:

  • README

    这意味着,您应该在 facebook developers 中设置一个应用程序(以 facebook 为例) , 这里是教程How to Add Social Login to Django在这里您可以找到如何设置 facebook 应用程序和配置 django_social。

    之后,您将拥有您的 Facebook 应用程序的 client_id、redirect_uri。
    下一步是获取参数代码。您可以通过向 url https://www.facebook.com/v2.5/dialog/oauth?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&display=popup&scope=email 发出 GET 请求来获取参数代码(范围=电子邮件,如果您想获取用户电子邮件)

    如果一切正确,它将使用代码参数将您重定向到您的 redirect_uri(例如:http://YOUR_REDIRECT_URL/?code=90159c983d3bdc28c0PPzfSQB8LI49BYlPA6Vs)

    所以,现在你有了代码,你可以登录(注册)用户了。只需将带有提供者名称和代码的 POST 请求发送到 url/api/login/social/jwt/
    {"code":"YOUR_CODE", "provider":"facebook"}
    

    就是这样,您将获得 jwt token 作为响应。

    关于django-rest-framework - django rest framework social-auth with jwt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595507/

    相关文章:

    reactjs - 与 react 路由器 react : render component by replacing content in an element

    python - 带有自定义中间件的 django 自定义身份验证后端(用户名、密码和 token Absed 身份验证)

    python - 从现有 drf 模型 View 集中删除特定操作

    java - 为什么将单个项目字符串解析为 JSONArray 失败

    django - 在 Django REST Framework 3 中,一个 ModelSerializer 可以有不同的字段集用于创建和更新吗?

    django - 是否可以更改 django_auth 中的哈希算法?

    python - 对于模板上的非事件用户,user.is_authenticated 始终返回 False

    python - Django 'Request' 对象没有属性 'user_id'

    javascript - VueJS : dynamically set component's methods

    javascript - AngularJS 与 ui-router 失去了 SPA 的概念?