相关疑难解决方法(0)

注销:GET或POST?

这个问题不是关于何时一般使用GET或POST; 它是关于处理Web应用程序注销的推荐方法.我已经在一般意义上找到了关于GET和POST之间差异的大量信息,但我没有找到这个特定场景的明确答案.

作为一个实用主义者,我倾向于使用GET,因为实现它比POST更简单; 只需删除一个简单的链接就可以了.这似乎是我能想到的绝大多数网站的情况,至少从头脑中可以看出来.甚至Stack Overflow也可以使用GET进行注销.

让我犹豫不决的是(尽管很老)一些论点,即一些网络加速器/代理通过访问和检索他们在页面中找到的每个链接来预先缓存页面,因此用户在点击它们时会得到更快的响应.我不确定这是否仍然适用,但如果是这种情况,那么从理论上讲,一旦有用这种加速器的用户在登录后就会被赶出应用程序,因为她的加速器会找到并检索注销链接,即使她从未点击过它.

到目前为止我所阅读的所有内容都建议POST应该用于"破坏性操作",而不改变应用程序内部状态的操作(如查询等)应该用GET处理.基于此,这里真正的问题是:

从应用程序注销被视为破坏性操作/是否会改变应用程序的内部状态?

architecture rest post get

393
推荐指数
6
解决办法
7万
查看次数

RESTful API的令牌认证:令牌是否应定期更改?

我正在使用Django和django-rest-framework构建RESTful API .

作为认证机制,我们选择了"令牌认证",并且我已经在Django-REST-Framework的文档之后实现了它,问题是,应用程序是否应该定期更新/更改令牌,如果是,如何?应该是需要续订令牌的移动应用程序还是Web应用程序应该自动执行此操作?

什么是最佳做法?

这里的任何人都有使用Django REST Framework的经验,可以提出技术解决方案吗?

(最后一个问题的优先级较低)

django rest restful-authentication django-rest-framework

103
推荐指数
5
解决办法
4万
查看次数

Django Rest Framework删除csrf

我知道有关于Django Rest Framework的答案,但我无法找到解决问题的方法.

我有一个具有身份验证和一些功能的应用程序.我添加了一个新的应用程序,它使用Django Rest Framework.我想只在这个应用程序中使用该库.我也想发出POST请求,我总是收到这个回复:

{
    "detail": "CSRF Failed: CSRF token missing or incorrect."
}
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

# urls.py
from django.conf.urls import patterns, url


urlpatterns = patterns(
    'api.views',
    url(r'^object/$', views.Object.as_view()),
)

# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from django.views.decorators.csrf import csrf_exempt


class Object(APIView):

    @csrf_exempt
    def post(self, request, format=None):
        return Response({'received data': request.data})
Run Code Online (Sandbox Code Playgroud)

我想添加API而不影响当前的应用程序.所以我的问题是如何才能为此应用禁用CSRF?

django csrf django-csrf django-rest-framework

95
推荐指数
8
解决办法
6万
查看次数

如何注销我使用OAuth2登录谷歌的应用程序?

在我的应用程序中,我使用jsapi实现了Google注销.

我使用网址https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx连接到Google,然后通过https://www.googleapis.com/plus/v1/people/xxxxxx获取用户数据来自谷歌个人资料.

现在,我需要在点击应用程序中的按钮时从Google注销用户.如何在JavaScript中实现此功能,或者至少每次用户登录时都必须询问Google登录页面.

我试过了approval_prompt=force,但似乎没有工作.

javascript api oauth-2.0

79
推荐指数
3
解决办法
9万
查看次数