我在需要訪問用戶的Spotify帳戶的Django應用中實現Python Social Auth。 Auth流程中的初始步驟起作用:向Spotify的「/ authorize」端點發送請求,並向用戶呈現解釋該應用程序將被授權訪問的範圍的模式。但是,那麼當請求應用程序的重定向URI(「/完成/ Spotify的/」),引發此異常:Pythons社交認證Spotify:重定向缺少「狀態」參數
AuthMissingParameter at /complete/spotify/
Missing needed parameter state
Request Method: GET
Request URL: http://127.0.0.1:8000/complete/spotify/
Django Version: 1.8.2
Exception Type: AuthMissingParameter
Exception Value:
Missing needed parameter state
Exception Location: /Users/brandon/Envs/group_playlist_generator/lib/python2.7/site-packages/social/backends/oauth.py in validate_state, line 86
Python Executable: /Users/brandon/Envs/group_playlist_generator/bin/python
Python Version: 2.7.9
Python Path:
['/Users/brandon/dev/group_playlist_generator',
'/Users/brandon/Envs/group_playlist_generator/lib/python27.zip',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/plat-darwin',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/plat-mac',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/lib-tk',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/lib-old',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/lib-dynload',
'/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/brandon/Envs/group_playlist_generator/lib/python2.7/site-packages']
這個問題可能只是我的驗證的一般經驗的功能尤其是在上下文Django的。我已經閱讀了PSA的源代碼的相關部分,但我不明白這個'狀態'參數如何在Spotify和應用程序之間傳遞。我發現這個參數添加到Spotify的原始請求中,但我不確定如何確保它返回到重定向URI和/或是否存在有關「狀態」的其他注意事項,如將其存儲在某處。任何建議是受歡迎的。
你可以發佈你的管道嗎? –