2017-12-01 2 views
0

Ich versuche, ein shify Zugriffstoken in einer Django-Ansicht bei der ersten Installation/Authentifizierung zu speichern (bevor sie ein Konto erstellen & verbinden mit DB).Speichern eines Benutzerzugriffstokens in djago view

Ich bin neu in Django, also bitte sei nett.

Wie speichere ich dieses Access Token für den späteren Gebrauch? Kann es in "Sitzung" gespeichert werden? ist es schon?

Hier ist meine repo und Python Ansicht:

def finalize(request): 
    shop_url = request.GET['shop'] 
    auth_code = request.GET['code'] 
    hashed = request.GET['hmac'] 
    ts = request.GET['timestamp'] 
    print("shopURL", shop_url) 

    print("success request") 
    try: 
     r = requests.post('https://'+shop_url+'/admin/oauth/access_token', data = {'client_id':'xx','client_secret':'xx','code':auth_code}) 

     print("request response > > > > ", r.json()) 
     this_response = r.json() 
     print(this_response["access_token"],"this_response[access_token]") 
     # >>>>>> STORE THIS TOKEN SOMEWHERE? 
     request.session['shopify'] = { 
      "shop_url": shop_url, 
      "access_token": this_response["access_token"] 
     } 

    except Exception: 
     messages.error(request, "Could not log in to Shopify store.") 

     return redirect(reverse('shopify_app_login')) 

    messages.info(request, "Logged in to shopify store.") 

    response = redirect(_return_address(request)) 
    request.session.pop('return_to', None) 
    return response 
+0

Haben Sie den Zugriffstoken über mehrere Sitzungen hinweg gespeichert werden sollen oder nur für die aktuelle Sitzung? – kshikama

+0

über Sitzungen .. aber auch, wenn ich die Seite erneut besuche - ich muss jedes Mal neu authe .. etwas funktioniert @kshikama nicht – NewPieGuy

Antwort

1

besten Optionen ist der User in Django zu speichern. Sie können die Django Benutzer erweitern Sie Ihre eigenen fileds

class Profile(models.Model): 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    shopify_access_token = models.CharField(max_length=200) 

später hinzuzufügen, können Sie dieses Token Zugriff mit request.user.profile.shopify_access_token

Verwandte Themen