【发布时间】:2016-12-25 17:46:15
【问题描述】:
我的应用中包含了第三方应用:
urlpatterns = [
url(r'webhook/', include('telegram.urls', namespace='api_webhook')),
]
假设电报应用有这样的url配置:
urlpatterns = [
url(r'^(?P<token>[-_:a-zA-Z0-9]+)/$', TelegramView.as_view(), name='api_webhook'),
]
现在我想这样做,token 参数将只是我自己的令牌。假设我有一个令牌jbhgfjkljnmbvgcfhjbmnbv,那么我只想接受对<mysite>.com/webhook/jbhgfjkljnmbvgcfhjbmnbv 的请求。我该怎么做呢?
如果我只包含电报应用程序的网址,那么我的应用程序将接受与其他人的请求,这将导致问题。
【问题讨论】:
-
虽然我没有测试过,但我认为你可以编写一个自定义中间件来检查 url,如果你不想更改视图中的任何内容,可以在此处引发 404。
-
我不想引发 404,因为我的项目中可能正在运行许多应用程序,并且每个应用程序都处理不同机器人的请求。所以我只想让每个应用程序只处理发送到他们的机器人的请求(每个机器人都有它的令牌)。准确地说,我不希望应用接收不是来自其机器人(或令牌)的请求
标签: django url-routing django-urls