未登录 Deezer 时,我的应用程序被重定向到错误 url

When not logged to Deezer, my application is redirected to wrong url

我的重定向有问题 url,但只有当我还没有连接到 deezer 时才会出现问题。

当我连接时,我的 OAuth 流程完美运行,我被重定向到右侧 url:'http://10.0.0.68:3000/callback/'。

但是当我没有打开 deezer 会话时,我被重定向到 Deezer 登录页面,它不起作用。每当我登录 Deezer,无论是否使用 facebook,我都会被重定向到以下地址:“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#=”。

我不知道这怎么会是我的应用程序的问题,因为它发生在我的范围之外,但这是我的代码:

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'),
]

希望有人能帮助我。

更新 2016-03-31

似乎 Deezer 解决了这个问题,所以它应该也适用于你的情况。

上一个回答:

至少我可以说这不是你的错。今天我意识到我们的应用程序 www.mooval.de 之前工作的 OAuth 工作流现在的行为与您在此处描述的完全相同。

Deeezer 最近似乎部署了一些无法创建正确重定向的东西 URL:

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%3D155151%26redirect_uri%3Dhttp%253A%252F%252Fwww.mooval.de%252FdeezerAuthCallback

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