2016-03-29 11 views
0

Ich habe ein Problem mit meiner Weiterleitungs-URL, aber nur, wenn ich nicht bereits mit deezer verbunden bin.Wenn nicht bei Deezer angemeldet ist, wird meine Anwendung auf falsche URL umgeleitet

Wenn ich verbunden bin, funktioniert mein OAuth-Flow perfekt, und ich werde an die richtige URL weitergeleitet: 'http://10.0.0.68:3000/callback/'.

Aber wenn ich keine Deezer-Sitzung habe und ich auf die Deezer-Login-Seite umgeleitet werde, funktioniert das nicht. Immer wenn ich mich bei Deezer einlogge, entweder mit Facebook oder nicht, werde ich an die folgende Adresse weitergeleitet: 'http://10.0.0.68:3000/callback/https://connect.deezer.com/oauth/auth.php?perms=basic_access%2Cemail%2Coffline_access&format=window&app_id=175451&redirect_uri=http%3A%2F%2F10.0.0.68%3A3000%2Fcallback%2F#='.

Ich habe keine Ahnung, wie dies ein Problem mit meiner app sein könnte, da es außerhalb meiner Reichweite passiert, aber hier ist mein Code:

settings.py

DEEZER_REDIRECT_URI = reverse_lazy('front:callback') 
DEEZER_API_URL = 'https://api.deezer.com/' 
DEEZER_CONNECT_URL = 'https://connect.deezer.com/' 
DEEZER_APP_ID = "xxxxxx" 
DEEZER_SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 

views.py

class LoginView(View): 
    """Logs user with Deezer""" 
    def get(self, request): 
     url = settings.DEEZER_CONNECT_URL + 'oauth/auth.php?' + \ 
             urlencode({ 
              'app_id': settings.DEEZER_APP_ID, 
              'perms': 'basic_access,email,offline_access', 
              'redirect_uri': settings.BASE_URL + str(settings.DEEZER_REDIRECT_URI)[1:] 
             }) 
     redirect = HttpResponseRedirect(url) 
     return redirect 

urls.py

app_name = 'front' 
urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^login/$', views.LoginView.as_view(), name='login'), 
    url(r'^callback/$', views.CallbackView.as_view(), name='callback'), 
] 

Hoffe jemand kann mir helfen.

Antwort

1

UPDATE 2016-03-31

Es scheint, dass Deezer das Problem gelöst, so dass es in Ihrem Fall funktionieren soll.

Zurück Antwort:

Zumindest kann ich sagen, dass es nicht Ihre Schuld. Heute habe ich gemerkt, dass der zuvor funktionierende OAuth-Workflow für unsere Applikation www.mooval.de sich nun genau so verhält wie hier beschrieben.

Deeezer scheint vor kurzem etwas eingesetzt zu haben, die eine korrekte Umleitungs-URL erstellen schlägt fehl:

https://connect.deezer.com/login.php?app_id=155151&redirect_type=refresh&redirect_link = http% 3A% 2F% 2Fwww.mooval.de% 2FdeezerAuthCallbackhttps% 3A% 2F% 2Fconnect.deezer. com% 2Foauth% 2Fauth.php% 3Fstate% 3Deb05c0fe-48ef-4cce-85c3-ed1d037d7111% 26perms% 3Doffline_access% 252Cmanage_library% 252Cdelete_library% 26format% 3Dfenster% 26app_id% 3D155151% 26redirect_uri% 3Dhttp% 253A% 252F% 252Fwww.mooval.de% 252FdeeerAuthCallback

GET /oauth/auth.php?app_id=xxxxxx&redirect_uri=http%3A%2F%2Fwww.mooval.de%2FdeezerAuthCallback&perms=manage_library%2Cdelete_library%2Coffline_access&state=eb05c0fe-48ef-4cce-85c3-ed1d037d7111 
HTTP/1.1 Host: connect.deezer.com 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8  
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 
DNT: 1 
Referer: http://mooval.de/ 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 
Cookie: xxx 

HTTP/1.1 302 Found 
Date: Wed, 30 Mar 2016 12:37:23 GMT 
Server: Apache 
Set-Cookie: sid=fr7ae7be4cd40c37855e22e876961fce0c3ec235; path=/; domain=.deezer.com; HttpOnly 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
P3P: policyref="/w3c/p3p.xml" CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA" 
Location: https://connect.deezer.com/login.php?app_id=155151&redirect_type=refresh&redirect_link=http%3A%2F%2Fwww.mooval.de%2FdeezerAuthCallbackhttps%3A%2F%2Fconnect.deezer.com%2Foauth%2Fauth.php%3Fstate%3Deb05c0fe-48ef-4cce-85c3-ed1d037d7111%26perms%3Doffline_access%252Cmanage_library%252Cdelete_library%26format%3Dwindow%26app_id%3Dxxxxx%26redirect_uri%3Dhttp%253A%252F%252Fwww.mooval.de%252FdeezerAuthCallback 
X-Host: blm-web-49 
Content-Length: 0 
Keep-Alive: timeout=3, max=500 
Connection: Keep-Alive 
Content-Type: text/html; charset=utf-8 
+0

Vielen Dank! Ich werde etwas auf ihre Mitarbeiter warten, bevor ich deine Antwort akzeptiere. Übrigens, coole App! –

+0

Danke :) Hast du mein Update auf dem Fall gesehen? Scheint, dass Deezer das Problem auf ihrer Seite bereits gelöst hat, also sollte auch Ihr Workflow jetzt funktionieren. –

+0

Ja, ich habe es gesehen, danke! –

Verwandte Themen