使 url 只能通过重定向访问

Make it so url can only be accessed through redirect

我正在将我的用户从贝宝付款重定向到 register.html,这样您只能在支付订阅费后才能注册。

如何才能使此重定向成为访问页面的唯一途径,而不是简单地将 mysite.com/register 放入浏览器?

我有需要登录的页面,但显然这是在用户注册之前,所以不能这样做。

您可以将付款 ID 添加到您的 url,例如: 我的网站.com/register/ 然后检查付款id是否已确认,如果完成则可以显示注册表或如果付款错误则重定向

对于 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不是很了解所以就不多说了。