2014-09-26 83 views
0

問題背景休息框架Django和令牌認證混亂

您好,我有一些問題搞清楚如何使用身份驗證令牌融入我的應用程序。 目前,我已經根據文檔設置了一切(至少我認爲是這樣,請參閱我已查看的文檔上的第1點)。我可以訪問身份驗證令牌端點並實際上獲取令牌,我也可以驗證它允許我使用該令牌進行身份驗證,因爲我已將它添加到我的一些端點(下面提供)的所需權限中。

核心問題

我的問題是,我試圖找出如何將用戶的職位與他們的身份驗證令牌相關聯,並讓他們的這個職位與自己的令牌的「老闆」,但用自己的「用戶名'而不是他們的'標記'字符串。我感謝任何和所有幫助:)

在我的models.py文件中...我得到的錯誤,所有者必須是'用戶'的實例,我假設它是從Django auth.User。我想知道如何改變它,以便它使用令牌找出用戶是誰,並將其保存爲他們的名字。我查看了文檔,我不確定我能找到它。

的文件我看過了

  1. REST框架authentication

正如我前面提到的,我可以用我的代幣只是在這行代碼罰款驗證自己的意見....它工作得很好,沒有錯誤。這導致我相信我在model.py中做了錯誤的事情(粘貼在下面)。

authentication_classes = (authentication.TokenAuthentication,)

models.py

from django.db import models 
from django.contrib.auth.models import User 
from rest_framework.authtoken.models import Token 
# Create your models here. 
class PRequests(models.Model): 
    created = models.DateTimeField(auto_now_add=True) 
    owner = models.ForeignKey('auth.User', related_name='p_requests') 
    first_name = models.CharField(max_length=100) 
    last_name = models.CharField(max_length=100) 
    pmessage = models.TextField() 
    approved = models.BooleanField(default=False) 

    def save(self, *args, **kwargs): 
    super(PRequests, self).save(*args,**kwargs) 

settings.py

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
# Uncomment the next line to enable the admin: 
'django.contrib.admin', 
# Uncomment the next line to enable admin documentation: 
# 'django.contrib.admindocs', 
'api', 
'rest_framework', 
'rest_framework.authtoken', 
'wlmapp', 
'p_requests', 
'corsheaders', 
'nuggets', 
) 

我已經加入了對的authToken框架,包括端點,因此用戶可以實際收到令牌。

urlpatterns += patterns('', 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
    url(r'^api-token-auth/', 'rest_framework.authtoken.views.obtain_auth_token'), 
) 

回答

0

之後,似乎我做了正確的一切,除了我不得不清除數據庫(刪除數據庫),以便令牌做正確的問題作進一步的調查。遷移並不幸運。

步驟獲得工作: 1.刪除本地SQL數據庫精簡版2 重新創建數據的基礎上 3.獲得我的令牌 4.恢復正常操作,一切現在工作得很好:)