gpt4 book ai didi

python - 使用 Django Allauth 注册 Facebook 用户

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:10 25 4
gpt4 key购买 nike

我尝试使用 Django AllAuth 通过 Facebook 注册用户。

我必须制作一个 REST API,以便使用 Django REST Framework。

我发现这很简单 tutorial进行第一个用户注册,但可能与当前的实现有一些不同:

我试过这段代码:

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 个参数:requestapptoken

所以,我也尝试像这个函数参数一样提出请求,但几行之后我在 login = fb_complete_login(app, token) 上出错。

TypeError: add_message() argument must be an HttpRequest object, not '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'

关于python - 使用 Django Allauth 注册 Facebook 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com