我正在使用基本身份验证的网站.使用Chrome我使用基本身份验证登录.我现在想从浏览器中删除基本身份验证详细信息并尝试不同的登录.
使用Chrome时,如何清除当前的基本身份验证详细信息?
我在PHP网站设置基本身份验证,发现此页面上显示的设置PHP手册.标题中的"领域"是什么意思?
header('WWW-Authenticate: Basic realm="My Realm"');
Run Code Online (Sandbox Code Playgroud)
是请求的页面页面吗?
如果用户使用基本身份验证,是否可以从网站注销用户?
杀戮会话是不够的,因为一旦用户通过身份验证,每个请求都包含登录信息,因此用户下次使用相同的凭据访问站点时会自动登录.
到目前为止,唯一的解决方案是关闭浏览器,但从可用性的角度来看,这是不可接受的.
当服务器允许通过基本HTTP身份验证进行访问时,浏览器的预期体验是什么?
我通常只使用curl执行此操作:
curl -u myusername:mypassword http://somesite.com
Run Code Online (Sandbox Code Playgroud)
它工作得很好.但是,现在我无法访问curl(长篇故事),如果可能的话,我想从Web浏览器中进行操作.
我认为Basic Auth应该工作的方式是 - 我输入我想要的网址,服务器然后决定我没有被授权,返回响应代码401,我输入我的用户名和密码到提示符.如果它是正确的,页面加载!
但是,在somesite.com上,我根本没有获得授权提示,只是一个页面上写着我没有被授权.有些网站没有正确实现Basic Auth工作流程,还是我还需要做其他事情?
我有一个关于HTTPS和HTTP身份验证凭据的问题.
假设我使用HTTP身份验证保护URL:
<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>
Run Code Online (Sandbox Code Playgroud)
然后,我通过HTTPS从远程系统访问该URL,并在URL中传递凭据:
https://gooduser:secretpassword@www.example.com/webcallback?foo=bar
Run Code Online (Sandbox Code Playgroud)
用户名和密码是否会自动进行SSL加密?GET和POST也是如此吗?我很难找到这个信息的可靠来源.
我正在用PHP构建一个REST Web服务客户端,目前我正在使用curl向服务发出请求.
如何使用curl进行身份验证(http basic)请求?我必须自己添加标题吗?
摘要和基本身份验证有什么区别?
authentication https http basic-authentication digest-authentication
使用cURL,我们可以使用HTTP Web请求传递用户名,如下所示:
$ curl -u <your_username> https://api.github.com/user
Run Code Online (Sandbox Code Playgroud)
该-u标志接受用于身份验证的用户名,然后cURL将请求密码.cURL示例用于使用GitHub Api进行基本身份验证.
我们如何同样传递用户名和密码以及Invoke-WebRequest?最终目标是在GitHub API中使用基本身份验证的PowerShell.
Notes来自客户端的Wikipedia on Basic Auth.
将用户名和密码合并为一个字符串 username:password
$user = "shaunluttin"
$pass = "super-strong-alpha-numeric-symbolic-long-password"
$pair = "${user}:${pass}"
Run Code Online (Sandbox Code Playgroud)
将字符串编码为Base64的RFC2045-MIME变体,但不限于76个字符/行.
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
Run Code Online (Sandbox Code Playgroud)
创建Auth值作为方法,空格,然后编码对 Method Base64String
$basicAuthValue = "Basic $base64"
Run Code Online (Sandbox Code Playgroud)
创建标题 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
$headers = @{ Authorization = $basicAuthValue }
Run Code Online (Sandbox Code Playgroud)
调用Web请求
Invoke-WebRequest -uri "https://api.github.com/user" -Headers $headers
Run Code Online (Sandbox Code Playgroud)
感谢@briantist的帮助!
PowerShell版本比cURL版本更冗长.这是为什么?@briantist指出GitHub打破了RFC并且PowerShell坚持使用它.这是否意味着cURL也打破了标准?
我正在学习Apigility(Apigility docu - > REST Service Tutorial)并尝试通过cURL发送带有基本身份验证的POST请求:
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
Run Code Online (Sandbox Code Playgroud)
YXBpdXNlcjphcGlwd2Q=是我的凭据的基本64编码字符串apiuser:apipwd.凭证保存在/data/htpasswd(apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/)中.
看起来像这样:
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"
Run Code Online (Sandbox Code Playgroud)
这里的错误在哪里?如何让它工作?
我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.
我试过这个:
curl -i http://dev.myapp.com/api/users \
-H "Authorization: Basic Ym9zY236Ym9zY28=" \
-H "Authorization: Bearer mytoken123"
Run Code Online (Sandbox Code Playgroud)
我可以为我的IP禁用HTTP身份验证,但由于我通常在具有动态IP的不同环境中工作,这不是一个好的解决方案.我错过了什么吗?
rest curl restful-authentication basic-authentication access-token
curl ×4
http ×4
https ×2
rest ×2
access-token ×1
apigility ×1
github-api ×1
php ×1
powershell ×1