gpt4 book ai didi

ios - 来自 iOS 客户端的 Django 身份验证

转载 作者:行者123 更新时间:2023-11-29 10:43:01 25 4
gpt4 key购买 nike

让 iOS 客户端登录到 Django 应用程序的最佳方法是什么 - 我探索了下面的 2 种方法,但每种方法似乎都有其优缺点。

在客户端,我使用的是 AFNetworking - 但如果它能简化身份验证过程,我也愿意使用 NSURLsession。

(A) 在 Django 中使用内置 session 变量客户端发送登录凭据以获取 session key ,并在事件 session 期间在所有 header 中使用该 key 。

我可以使用 Django 中的 @login_required 指令自动执行此操作,还是需要手动编写 session 变量检查代码(例如,将传入的 session key 与 request.session.session_key 进行比较)?此外,我仍然可以使用 tastypie(尽管 Django 直接进行身份验证)作为 API 包装器,还是我必须使用 Django 进行数据(JSON)处理

(B) 在 tastypie (+Django) 中使用 OAuth2为用户创建客户端 ID 和 key ;客户端在 session 开始时发送这个(连同用户名和密码)——跟随这个 tastypie 管理 session

这似乎需要为每个用户生成一个客户端 ID 和一个 key 。从 Django 管理面板生成它很简单,但我不清楚如何动态创建它并在创建用户后立即将其传递给客户端。

最佳答案

在 tastypie 中,有一个管理命令可以为没有 API key 的用户生成 API key :

python manage.py backfill_api_keys

您还需要一种为每个新用户自动生成 API key 的方法,from Tastypie docs :

from django.contrib.auth.models import User
from django.db import models
from tastypie.models import create_api_key

models.signals.post_save.connect(create_api_key, sender=User)

一旦所有客户端都拥有 API key ,您就可以使用 BasicAuthentication 获取访问 token 以在您的应用中使用。 Check this gist ,然后您可以向 http://example.com/api/token/auth/ 发出请求以获取您的 token 。

查看 this post for an iOS example using OAuth2

关于ios - 来自 iOS 客户端的 Django 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com