HTTP Basic Auth:使用和Postman 测试

1.HTTP Basic Auth百科介绍

Basic Auth是开放平台的一种认证方式,简单点说就是每次请求API时都提供用户的username和password。

优点:

使用非常简单;
开发和调试工作简单;
没有复杂的页面跳转逻辑和交互过程;
更利于发起方控制;

缺点:

安全性低,每次都需要传递用户名和密码,用户名和密码很大程度上存在被监听盗取的可能;
同时应用本地还需要保存用户名和密码,在应用本身的安全性来说,也存在很大问题;  
开放平台服务商出于自身安全性的考虑(第三方可以得到该服务商用户的账号密码,对于服务商来说是一种安全隐患),未来也会限制此认证方式;
用户如果更改了用户名和密码,还需要重新进行密码校验的过程。

2.使用 Basic Auth

使用上的话,我们将 账号:密码 形式的字符串以base64加密,然后在字符串头加上"Basic "。下面是代码:

    public String getBaseAuth(String userName, String password){
        String auth = userName + ":" + password;
        String base64Auth = Base64.encodeBase64URLSafeString(auth.getBytes());
        return  "Basic " + base64Auth;
    }

然后我们在请求中加一个参数即可。如下:

    @RequestHeader("Authorization") String authorization

也可以在使用拦截器统一对request处理。

3.测试 Basic Auth

Posrman 可以直接设置 Basic Auth。

在这里插入图片描述

在这里插入图片描述

上面两种方式都可以在Postman 设置 Basic Auth。

`BasicAuth`中间件的作用是对HTTP请求进行基本身份验证(Basic Authentication),以确保只有提供了正确的用户名和密码的用户才能访问受保护的资源。 以下是一个简单的演示示例: ```go package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() // 定义一个验证函数 auth := func(username, password string) bool { // 这里可以根据具体需求进行用户名和密码的验证 return username == "admin" && password == "password" } // 使用BasicAuth中间件,并提供验证函数 router.Use(gin.BasicAuth(gin.Accounts{ "admin": "password", })) // 受保护的路由 router.GET("/protected", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Access granted"}) }) router.Run(":8080") } ``` 在上述代码中,我们定义了一个验证函数`auth`,它简单地检查用户名和密码是否为"admin"和"password"。然后,我们使用`BasicAuth`中间件并提供该验证函数。 当用户访问受保护的路由`/protected`时,中间件会自动调用验证函数进行身份验证。如果提供的用户名和密码与验证函数中定义的相匹配,请求将被继续处理并返回一个成功的响应;否则,将返回一个HTTP 401 Unauthorized响应。 在使用Postman发送请求时,你可以按照以下步骤设置基本身份验证: 1. 打开Postman,选择要发送的HTTP请求类型(如GET、POST等)。 2. 在请求的Headers选项卡中,添加一个名为`Authorization`的Header。 3. 在`Authorization`的值中,输入`Basic`后面跟上一个空格,然后是用户名和密码的Base64编码。编码格式为`username:password`,使用`Base64(username:password)`进行编码。 4. 发送请求。 例如,如果用户名是"admin",密码是"password",则可以将`Authorization`的值设置为`Basic YWRtaW46cGFzc3dvcmQ=`。 这样,Postman将在请求头中包含基本身份验证信息,并发送请求到受保护的路由。服务器将使用`BasicAuth`中间件进行身份验证,并根据提供的用户名和密码返回相应的响应。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值