我试图使用Django AllAuth通过Facebook成为注册用户。
我必须制作一个REST API,以便使用Django REST Framework。
我找到了这个简单的教程来进行首次用户注册,但可能与当前的实现有所不同:
我尝试了这段代码:
def post(self, request):
data = JSONParser().parse(request)
access_token = data.get('access_token', '')
try:
app = SocialApp.objects.get(provider="facebook")
token = SocialToken(app=app, token=access_token)
# check token against facebook
login = fb_complete_login(app, token)
login.token = token
login.state = SocialLogin.state_from_request(request)
# add or update the user into users table
ret = complete_social_login(request, login)
# if we get here we've succeeded
return Response(status=200, data={
'success': True,
'username': request.user.username,
'user_id': request.user.pk,
})
except:
traceback.print_exc()
return Response(status=401, data={
'success': False,
'reason': "Bad Access Token",
})
但现在我看到,fb_complete_login
取3个参数:request
,app
和token
。
因此,我尝试也将类似此功能参数的请求放入,但稍后在l上出现错误ogin = fb_complete_login(app, token)
。
TypeError:add_message()参数必须是HttpRequest对象,而不是“ Request”。
欢迎任何建议!
此处提供的解决方案:http : //tech.agilitynerd.com/django-rest-registration-with-django-rest-auth.html
要仅针对allauth禁用消息传递,请覆盖适配器(例如,在main.adapters中):
from allauth.account.adapter import DefaultAccountAdapter
class MessageFreeAdapter(DefaultAccountAdapter):
def add_message(self, request, level, message_template,
message_context=None, extra_tags=''):
pass
然后将其添加到settings.py中:
ACCOUNT_ADAPTER = 'main.adapters.MessageFreeAdapter'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句