问题标签 [flask-httpauth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - flask-httpauth:get_password 装饰器如何用于基本身份验证?
我想知道是否有人使用这个烧瓶扩展来简化 http-basic-auth。
基本上我不明白这个例子:
get_password
装饰器似乎返回给定用户的明文密码,如果它与用户提供的密码匹配,则授权将被授予。
但是没有人应该首先访问用户的明文密码。我通常将明文密码和用户名发送到后端,对密码进行哈希处理并将其与数据库中现有的哈希密码进行比较。
这是如何设想的?
更新:
文档的链接提供了更多信息。因为需要第二个装饰器来实现这一点:
从字面上看,规则是get_password(username) == hash_password(password)
我理解这个工作的方式是get_password
在数据库中返回用户的哈希密码,它需要等于hash_password
方法中定义的当前哈希密码。
问题是,我使用的是passlib 中的 sha256_crypt。
在这里,您不能散列给定的密码并将其与存储的散列密码进行比较。我必须使用sha256_crypt.verify(password, hashed_password_in_db)
返回 false 或 true 的方法。
有没有办法实现这一点,还是我必须推出自己的自定义解决方案?谢谢
python - Flask-HTTPAuth 验证密码
我被flask-httpauth的verify_password卡住了。
我有用户名和密码脚本,它对密码进行哈希处理并将其放入一个简单的文件中。(是的,这不是最安全的,但 LDAP/LOGIN 不能使用我的知识水平与 Flask(Sandman.io) 一起正常工作。我想将它放入 Sandman 正在读取的数据库中以使其更容易,但我尝试的一切这个应用程序在火灾中死亡。)。
在我的包装中,我有一部分用它做成字典
这给了我用于身份验证的字典。如果字典没有散列密码,这将起作用,所以我遇到的问题是让它在这个级别上工作。
我下面的内容不起作用,但使用该示例作为测试用例,我几乎可以使用任何用户名和密码登录(真棒吗?...)
对此的任何帮助将不胜感激。谢谢。
python - 烧瓶 http-auth 和单元测试
你好!
我有一条使用 HTTP Basic 身份验证保护的路由,该路由由 Flask-HTTPAuth 实现。如果我使用 curl,一切正常(我可以访问路由),但是在单元测试时,即使我提供了正确的用户名和密码,也无法访问路由。
以下是我的测试模块中的相关代码片段:
以下是 Flask-HTTPAuth 所需的回调方法:
任何我的路线:
单元测试抛出以下异常:
我想再次强调,当我使用为测试客户端提供的完全相同的参数运行 curl 时,一切正常,但是当我运行测试时,verify_password 方法甚至不会被调用。
非常感谢您的帮助!
python-2.7 - flask-restful 和 flask-auth :具有不同身份验证的多种 HTTP 方法
我正在尝试使用具有多个 HTTP(GET、POST、PUT、DELETE)方法的相同 url,并且对于每种方法,它使用 flask-auth 进行不同的身份验证。
我尝试创建的不仅仅是类
但发生的事情是restful_api.add_resource(PostUser,'/User')
会覆盖restful_api.add_resource(GetUser,'/User')
python - Flask-HTTPAuth verify_password 函数未接收用户名或密码
当我尝试使用@auth.login_required
装饰器访问路由时,系统会提示我输入用户名和密码。输入此信息后,函数的参数username_or_token
和password
为。为什么数据是空的?verify_password
''
更新
我已将代码简化为:
我正在使用Advanced Rest Client
.
http://localhost:8081/myapp/api/token
我还附上了一个Authorization
标题。
这导致输出:
Hello, !
日志文件:
我也不再被提示输入我security credentials
的。
另一个奇怪的是,即使我将 return 更改为false
in verify_password
,我仍然得到相同的输出:Hello, !
python - 本地主机问题与烧瓶-http auth
我有以下内容:
当我使用 访问api/token
路线localhost
时,系统会提示我输入我的username
和password
。之后当我检查我的日志时,我发现username_or_token
变量是''
.
奇怪的是我已经在我的身上测试了完全相同的代码online server
并且没有任何问题..
我正在使用Advanced Rest Client
. 使用这个时,我在选项卡下plugin
添加并Authorisation header
使用下拉字段。在我的.Login
Password
Basic
online server
我正在使用XAMPP
. 不太确定要提供哪些其他信息。
有没有人经历过这种情况?
请求详细信息
HTTPIE 输出
再次username
设置为''
。
python - 默认 login_required 而不是到处添加装饰器
我正在使用 Flask-HTTPAuth 在我的应用程序中处理身份验证。我有很多观点,我不想login_required
每一个都添加。我怎样才能默认要求登录?
python - flask-httpauth 上的多个 verify_password 回调
开发一个 Flask 应用程序,该应用程序将具有单独的路由类进行身份验证:用户路由和主机路由(想想 Airbnb 的用户和主机差异很大的地方)。
创建单个 verify_password 回调和 login_required 组合非常简单,但这还不够,因为某些路由需要主机身份验证,而其他路由需要用户身份验证。本质上,我需要一个用于用户的 verify_password/login_required 和一个用于主机,但我似乎无法弄清楚如何做到这一点,因为就身份验证的范围而言,回调似乎是全局的。
python - 我正在重组我的 Flask-restful 应用程序,但在放置 HTTP-auth 以使应用程序运行时遇到问题
本质上,我有一个这样的目录:
在我的 auth.py 中,我有一个标准的基于 HTTP 的用户名/密码身份验证。我将这些用于必须登录的区域,并且我想验证每个用户。Login.py 是我需要添加装饰器的地方,但由于此错误,整个应用程序无法运行: AttributeError: 'module' object has no attribute 'login_required'
我的 login.py 代码,它调用装饰器,然后请求身份验证。
所以总结一下,我的问题是:如何以及在哪里添加flask-httpauth 类,以便我可以使用装饰器。我现在的选择可能是将验证代码粘贴到需要它的每个资源类中,但似乎必须有更好的方法来组织它。帮助?
angularjs - 基本身份验证标头似乎丢失了
我正在编写一个 Flask RESTful 服务器和一个 AngularJS 客户端,并且遇到了一个问题,可以这么说,用户名和密码信息似乎在传输中丢失了。
在 Javascript 控制台中,我可以看出客户端正在按预期发送 Authorization 标头:Authorization: Basic username:password
。但是,在 @auth.verify_password 回调中,它们都是空的。
我围绕代码的服务器部分进行了相当多的单元测试,并且身份验证信息似乎都存在于所有这些测试中,因此令人放心的是,在某些情况下,我至少可以从标头中获取用户名和密码.
此外,我已将 CORS 扩展添加到服务器代码中,并允许它在服务器范围内使用。似乎总是在 GET(由于用户名和密码问题,返回 401)到同一 url 之前立即调用到以下 url 的 OPTIONS(总是返回 200)。
参考代码:
服务器认证回调:
服务器单元测试代码按预期运行:
AngularJS 代码在浏览器中检查时产生适当的标头,但在身份验证回调中为空用户名和密码: