我正在使用Python社交身份验证和自定义后端。到目前为止,这是我的代码:
from requests import HTTPError
from social.backends.oauth import BaseOAuth2
from social.exceptions import AuthFailed
class MyOAuth2(BaseOAuth2):
#testing OAuth authentication backend
name = 'testing'
AUTHORIZATION_URL = 'https://<my_drupal_oauth2_server>/oauth2/authorize'
ACCESS_TOKEN_URL = 'https://<my_drupal_oauth2_server>/oauth2/token'
SCOPE_SEPARATOR = ','
STATE_PARAMETER = 'False'
REDIRECT_STATE = 'False'
EXTRA_DATA = [
('id', 'id'),
('expires', 'expires'),
]
def get_user_details(self, response):
#Return user details from test account
return {'username': response.get('login'),
'email': response.get('email') or '',
'first_name': response.get('name')}
#def user_data(self, access_token, *args, **kwargs):
# #Loads user data from service
这是我第一次尝试使用自定义后端实现OAuth2设置 - 首次尝试编写一个。
OAuth2服务器可与Google的OAuth2游乐场配合使用。然而,我的django应用程序(Open EDX)正在抛出错误。
如果我手动将?state=xyz
添加到网址,我会收到另一个错误:
会话值状态缺失
我已经搜索了关于这两个错误的良好信息,并且我找不到根本原因可能是什么,以及解决方案。