谨以此文献给那些需要实现HTTP AUTH的“程序猿”们。
关于HTTP AUTH的文档不多。
RFC在 http://www.ietf.org/rfc/rfc2617.txt
wiki在 http://en.wikipedia.org/wiki/Basic_access_authentication
使用HTTP AUTH需要在server端配置http auth信息(一般是webserver启动的时候从配置文件里面读取相关信息)。我用中文简述一下http auth的过程:
- 客户端发送http请求
- 服务器发现配置了http auth,于是检查request里面有没有"Authorization"的http header
- 如果有,则判断Authorization里面的内容是否在用户列表里面,Authorization header的典型数据为"Authorization: Basic jdhaHY0=",其中Basic表示基础认证, jdhaHY0=是base64编码的"user:passwd"字符串。
- 如果没有,或者用户密码不对,则返回http code 401页面给客户端
- 标准的http浏览器在收到401页面之后,应该弹出一个对话框让用户输入帐号密码;并在用户点确认的时候再次发出请求,这次请求里面将带上Authorization header
一次典型的访问场景是:
- 浏览器发送http请求(没有Authorization header)
- 服务器端返回401页面
- 浏览器弹出认证对话框
- 用户输入帐号密码,并点确认
- 浏览器再次发出http请求(带着Authorization header)
- 服务器端认证通过,并返回页面
- 浏览器显示页面
使用http auth的场景不会用cookie,也就是说每次都会送帐号密码信息过去。然后我们都知道base64编码基本上等于明文。这削弱了安全。
由于种种缺点,http auth现在用的并不多。不过在路由器等场合还是有应用的,原因是http auth最简单,使用起来几乎是零成本。
在你需要做访问控制,又不想拖上SSO、数据库之类的东西的时候,http auth不失为一个简洁的选项。
相关推荐
在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。 在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果...
oracle向javaweb发送请求
Unity 中通过UnityWebRequest 以GET形式传authorization 的参数请求数据。 注意: 以Header头文件的形式发送请求,authorization要放入请求头部。 以头文件形式发起请求进行Token验证,token为Authorization中的...
npm install --save mongoose-authorization 入门 'use strict' ; var mongoose = require ( 'mongoose' ) ; var authz = require ( 'mongoose-authorization' ) ; var userSchema = new mongoose . Schema ( { ...
针对任何与兼容的 HTTP Authorization标头。 var header = require ( 'express-authentication-header' ) , auth = require ( 'express-authentication' ) ; // Validate the challenge app . use ( header ( { ...
Oauth2授权服务器(身份验证服务器)的构造 0.概述 关于如何构建SpringBoot提供的Oauth2身份验证服务器的实践 ...curl -X POST'http :// localhost:8080 / oauth / token'-H'Authorization:Basic dGVzdENsaWVudElkO
php代码-海康摄像头HTTP获取图片。 Authorization: Digest算法 第一次...返回头中Authorization参数用于此计算,得出新的Authorization,放于头中再次请求就得到图片
基本授权标头 ... npm install basic-authorization-header --save npm统计 例子 var basic = require ( 'basic-authorization-header' ) ; var headers = { 'Authorization' : basic ( "Aladdin" , ...http.request
通过HTTP Authorization标头进行令牌授权 上传图片,视频,文件 缩略图支持 删除支持 多种数据库类型(JSON,Mongo,MySQL,PostgreSQL等) 多种访问类型(原始,大小写混合的字母数字, 等。当前使用ZWS) ...
:check_mark: 通过HTTP Authorization标头进行令牌授权 :check_mark: 上传图片,视频,文件 :check_mark: 花式嵌入不和谐 :check_mark: 无缝的嵌入式视频嵌入在Discord中 :check_mark: 文件删除 :check_mark: ...
Nest.js的基于会话的WebSockets授权 这是我的的代码示例 手动安装 我假设您有节点,yarn ...-X POST http://localhost:3000/auth/login \ -d ' {"email": "trejgun@gmail.com", "password": "My5up3r5tr0ngP@55w0rd"} '
概述 用于config-api的Docker映像打包。 版本号 请参阅以获取稳定版本。 对于最新版本/不稳定版本,请使用janssenproject/config-api 。... CN_CONFIG_CONSUL_SCHEME :受支持的Consul方案( http或https )。 CN_
postman是接口调试工具,发送几乎所有类型的HTTP请求,有两种应用形式,pc端和chrome插件,以chrome插件形式可以通过Chrome的应用商店进行搜索并安装(不过官方已经在2017年宣布不在维护chrome版本,官方推荐安装pc端...
此替代StatelessAuthComponent是经过精简和简化的版本,默认情况下会在HTTP请求中查找Authorization标头,并使用该标头中的Bearer [token]值填充Auth->User() 。 (这不是AuthComponent的默认默认操作,该默认操作...
注:如果使用Apache环境 需要在.htaccess 中添加复制代码SetEnvIf Authorization"(.*)" HTTP_AUTHORIZATION=$1否则会导致OAuth登录模式获取不到Authorization4.设置代码执行目录为/server/web5. 在浏览器中输入你的...
基于JWKS的Nest.js授权 这是我的的代码示例 安装 我假设您有节点,yarn / npm和postgres 首先,您必须下载依赖项 ...-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImYwOTJiNjEyZTliNjQ0N2RlYjEwNjg1YmI4Z
然后,在Http请求中使用authorization作为一个HTTP请求头Header name,“Basic YWtaW46YWRtaW4=“作为Header的值,发送给服务端。(注意这里使用Basic+空格+加密串) 服务器在收到这样的请求时,到达...
支持 http authorization 自定义合法状态码 自定义参数序列化 支持配置 baseURL axios.all axios.spread axios.getUri 所有 axios 官方库浏览器端功能已实现 单元测试 helpers 模块测试用例编写完毕