2012-10-12 36 views
0

我正在創建一個從iphone到django服務器的登錄過程。如何從iphone到django獲取會話和驗證用戶信息?

我使用類方法創建Session類,使用json的httprequest包裝器。

但我不知道。我如何獲得會話信息和匹配的服務器會話?

,如果我得到的會話信息,(例如只是僞代碼)

def function(username, password) 
    if is_authenticate(username, password) == true 
     login(username, password) 
     #What send value to iphone 
     return returnValue(session_id) 

我怎麼能發送SESSION_ID?

這是登錄功能

def sign_in(request): 
    if request.method=='POST': 
     username = requset.POST['username'] 
     password = request.POST['password'] 
     user = authenticate(username=username, password=password) 
     list = [] 
     if user is not None: 
      if user.is_activate: 
       try: 
        login(request,user) 
        list.append({'fields': 
             {'login_status':'login success'},}) 
       except: 
        list.append({'fields': 
             {'login_status':'login fail'},}) 



returnValues = json.dumps(list,cls=DjangoJSONEncoder) 
return HttpResponse(returnValues) 

回答

1

通常情況下,會話標識符將設置爲一個cookie,如果自動使用默認NSURLConnection的和的NSURLRequest,作爲會話數據,即生活在服務器上,如果你想在你的iPhone上訪問它,你將不得不開發某種類型的API,不管是基於休息還是肥皂或者不太正式的定義。

因此,工作流程可能類似於

iPhone發送的登錄請求:服務器響應OK ...設置cookie的一些會話數據。

iPhone發送userData請求:服務器響應用戶數據的Json結構。

+0

Thx @Grady Player。我嘗試了一些。從iphone製作一個cookie到django服務器並返回cookie作爲迴應。但不能返回值'set​​-cookie',但會有所不同:cookie;任何有解決方案? – Haibane

+0

不確定你的意思,在django中,會話打開時它應該自動發送頭來設置cookie,這將基本上由你的NSURLConnection持續......你通常不必擔心它,但如果你確實需要保留它,你可以選擇自己管理這些cookie,在這種情況下,你會看到set-cookie頭......見http://stackoverflow.com/questions/2053568/managing-http-cookies-on -蘋果手機 –

相關問題