首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >request_loader与user_loader有什么关系?

request_loader与user_loader有什么关系?
EN

Stack Overflow用户
提问于 2016-07-20 13:43:05
回答 3查看 8.1K关注 0票数 11

我事先为问了一个相当神秘的问题而道歉。然而,尽管我看了很多资料,但我还是不明白。如果你能对此有所了解,那就太好了。

request_loader在烧瓶登录中的用途是什么?它是如何与user_loader装饰器交互的?

如果我使用基于令牌的身份验证系统(我计划将令牌发送到我的angularJS前端,将令牌存储在那里,并将该令牌发送到授权-令牌报头中),那么我需要request_loader还是user_loader (检查auth头并查看用户是否存在)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-28 00:37:21

从水瓶登录文档

有时,您希望不使用cookie来登录用户,例如使用头值或作为查询参数传递的api键。在这些情况下,您应该使用request_loader回调。此回调应该与您的user_loader回调相同,只不过它接受的是Flask请求,而不是user_id。

所以,为了回答你的问题,他们都有相同的功能对瓶-登录。它们都用于加载用户。然而,request_loader适合自定义登录。

下面是我发现的一个很好的教程,它利用request_loader来利用基于令牌的身份验证(这个帖子不是我自己的,我只是分享链接):http://gouthamanbalaraman.com/blog/minimal-flask-login-example.html

票数 10
EN

Stack Overflow用户

发布于 2017-08-17 14:36:51

若要通过session_id验证使用flag的前端请求的用户,必须将withCredentials配置标志设置为true

也就是说,如果您使用的是$http.post(url,data [,config])$http.get(url [,config]),请确保config对象包含设置为true的属性withCredentials。这将指示浏览器使用其cookie,就像对页面进行全面访问一样。

例如,

代码语言:javascript
复制
$http.post('/api/login',{username:'myusername',password:'mypassword'},{withCredentials:true})

会不会post数据{username:'myusername',password:'mypassword'}到您的站点/应用程序的/api/login路由,并且,如果您使用的是Flask并已登录,Flask将知道。

可以通过设置all $http服务请求来设置此行为。

代码语言:javascript
复制
$httpProvider.defaults.withCredentials=true

在你的应用程序的某个地方。目前,我的app.config块中有这一行代码,这在我看来是合适的:

代码语言:javascript
复制
var myApp = angular.module('myApp');

myApp.config(function ($httpProvider) {
  $httpProvider.defaults.withCredentials = true;
  });

(由于这篇文章是关于酒瓶的,所以人们可能希望以一种可以在request.form中找到表单数据的方式发送表单数据,后者有类似的解决方案fyi。)

票数 1
EN

Stack Overflow用户

发布于 2021-01-26 16:42:57

我得说清楚。这就是为什么您应该将request_loader与flask_login一起使用的原因。

api中将有许多来自@login_required的flask_login来保护请求访问。

您需要向发出请求,通过auth的检查。

会有大量的current_user从flask_login进口,

您的应用程序需要使用它们来让请求current_user.作为的标识。

用flask_login实现上述目标有两种方法。

  • 使用user_loader可以使@login_required的请求正常。 它经常用于浏览器中的UI登录。 它将将会话cookie存储到浏览器中,并在稍后使用它们进行操作。 因此,,您只需要登录一次,会话将保持一段时间。
  • 使用request_loader也可以使用@login_required 但它经常与api_key或basic auth一起使用。 例如,其他应用程序用于与您的烧瓶应用程序交互。 不会有会话曲奇, 因此,每次发送请求时,您都需要提供的信息。

无论是user_loader还是request_loader

现在您可以使用2方法来处理相同的api,

@login_required,保护的

和与可用,

真的很聪明。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38483026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档