我正在尝试使用 Facebook Javascript SDK 设置 PSA。
我想使用部分管道,以便将用户重定向到收集其他数据的表单。
文档中的示例面向 ajax 身份验证,这不是我想要的。这是我到目前为止的代码,适用于不需要重定向的用户。
# could not get decorator to work with cbv :(
@psa('social:complete')
def register_by_access_token(request, backend):
token = request.GET.get('access_token')
backend = request.backend
user = backend.do_auth(token)
return user
class RegisterByTokenView(View):
def get(self, request, backend):
user = register_by_access_token(request, backend)
if user:
login(request, user)
return HttpResponseRedirect(reverse('home'))
有几件事对我不起作用。
- 如果用户需要通过部分管道重定向,
register_by_access_token
将返回 HTTPResponseRedirect ,这将导致login(request, user)
失败。 - 即使管道跳过部分管道并且我的用户已正确验证,我也不确定如何让用户以
SOCIAL_AUTH_NEW_USER_REDIRECT_URL
.