【发布时间】:2021-05-21 11:48:06
【问题描述】:
我正在将我的用户从 paypal 付款重定向到 register.html,以便您只有在支付订阅费用后才能注册。
如何才能使此重定向成为访问页面的唯一方法,而不是简单地将 mysite.com/register 放入浏览器?
我有需要登录的页面,但显然这是在用户注册之前,所以不能这样做。
【问题讨论】:
标签: django redirect django-templates django-urls
我正在将我的用户从 paypal 付款重定向到 register.html,以便您只有在支付订阅费用后才能注册。
如何才能使此重定向成为访问页面的唯一方法,而不是简单地将 mysite.com/register 放入浏览器?
我有需要登录的页面,但显然这是在用户注册之前,所以不能这样做。
【问题讨论】:
标签: django redirect django-templates django-urls
您可以在您的网址中添加付款 ID,例如:
mysite.com/register/
【讨论】:
对于 OP 中发布的要求,您可能有兴趣使用 HttpRequest.META 中的 HTTP_REFERER 来告诉您用户从哪里重定向。
这是一个关于如何在 django 中实现它的示例视图
def your_view(request):
print(request.META.get('HTTP_REFERER'))
if request.META.get('HTTP_REFERER') == 'whatever url of paypal you want to allow':
some_context = {}
return render(request, 'yourhtml.html', some_context)
return redirect('/') # it can be redirected to anywhere if user is not intended audience
因此它只会向来自您在 if 条件中设置的 url 的用户显示此视图
注意:我不会说它是安全的,但它可以解决问题
为了确保安全,我建议您设置一个短暂的临时令牌,例如 jwt 或其他用于用户验证的东西(如果可能的话)。我对paypal不太了解,所以不会多说。
【讨论】:
https://www.yourdomain.com/register?checkout-token=yourtoken。