私はDjango(もちろんDjango Rest Framework)を使用するアプリケーションを構築しており、Token Based Authenticationを使いたいと思います。私は実行時に私のモデルとユーザーを関連付ける方法について100%明確ではありません。ユーザーとモデルの関連付けを処理する方法は?
ので、I'll receive a POST request in my View:
if request.method == 'POST':
....
serializer.save()
そして、the flow will go to the post save receiver:
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
私は私のモデルでは、私は、ユーザーへの参照をする必要がありますと仮定します。しかし、どのようにしてビュー内に新しいユーザーまたは既存のユーザーを取得できますか? 私はこれが私のモデルになるとします
class UserPostData:
some_info = models.DateField()
user = models.OneToOneField(User)
しかし、どのように私はちょうどビューに保存されたモデルとユーザーを関連付ける扱うのですか?
if request.method == 'POST':
# get_or_create_user()? But there's no username. It's token based auth
serializer.save()
よし。ありがとう。 'TokenAuthenticationが正常に認証された場合、TokenAuthenticationは以下の認証情報を提供します:request.userはDjango Userインスタンスになります。 'しかし、要求が正常に認証されなかったらどうなるでしょうか?次に、フローは '@receiver(post_save、sender = settings.AUTH_USER_MODEL)'に行きますか? –
私は確かに分かりませんが、クライアントが正しい認証資格情報を提供する場合にのみ認証トークンを作成すると仮定します。それ以外の場合はそれほど意味がありません。 – prokher
この設定にはパスワードはありません。トークンベースです。 –