我正在使用Python / Django 1.7.1和Django REST Framework构建项目。
我有两个项目子域名:
WWW-host包含用户可以登录的网站。 REST后端位于API主机上。
我像这样配置了Django REST Framework:
REST_FRAMEWORK = {
'PAGINATE_BY': 10,
'PAGINATE_BY_PARAM': None,
'MAX_PAGINATE_BY': 10,
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
),
}
实质上:我在WWW主机上使用基于会话的身份验证,为Android应用程序使用基于令牌的身份验证。
现在问题就在于此。在WWW主机上登录的用户可以在API主机上使用REST API,因为会话身份验证已启用。在WWW主机上运行的JavaScript正在向API主机发出API调用。这很好用,但是当用户登录到WWW主机然后打开一个新选项卡并转到API主机时,用户可以只看到REST API,这不是我打算做的此
当用户登录WWW主机时,无论如何都不在API主机上显示REST API吗?
我配置了会话cookie域和CSRF cookie域,如下所示:
DOMAIN = 'myproject.com'
SESSION_COOKIE_DOMAIN = '.' + DOMAIN
CSRF_COOKIE_DOMAIN = SESSION_COOKIE_DOMAIN
我将其修改为:
DOMAIN = 'myproject.com'
SESSION_COOKIE_DOMAIN = 'www.' + DOMAIN
CSRF_COOKIE_DOMAIN = SESSION_COOKIE_DOMAIN
但是在尝试此操作时,当用户登录WWW主机时,REST API无法通过会话身份验证获得,因为cookie仅为WWW主机设置...
我的问题的任何提示? : - )
提前致谢!
亲切的问候, ķ。
答案 0 :(得分:1)
基本上......我的问题有点愚蠢,你可以根据需要实现权限来解决这个问题。问题解决了! : - )