当我们调用的某些API时,会要求我们在请求头上添加Basic Auth(基本认证)的凭证。比如调用生成退货面单API时,API是这样描述的,翻译过来就是:您的活动业务客户的用户名和密码值必须通过基本身份验证(basic Auth)提供。
为什么要Basic Auth
需要Basic Auth凭证的API,都会涉及到使用业务账号的后台数据,我们上面说的生成退货面单API里面有个一个参数(receiverId)就是业务账号在后台配置的收货地址id,再来看官网的说明,就很好理解了。翻译:您将在Post & DHL业务客户门户网站(https://geschaeftskunden.dhl.de/)的菜单项“Returns”>下找到退货收件人的姓名(receiverID);“接收器ID”条目下的“设置”。
Basic Auth
Basic Auth就是把业务账户的用户和密码用“:”拼接后,进行base64的编码,假如我们有以下业务账号
username:2222222222_customer
password:uBQbZ62!ZiBiVVbhc
拼接格式:2222222222_customer:uBQbZ62!ZiBiVVbhc
base64编码后内容:MjIyMjIyMjIyMl9jdXN0b21lcjp1QlFiWjYyIVppQmlWVmJoYw==
那么我们在请求头上的Authorization就是
Basic MjIyMjIyMjIyMl9jdXN0b21lcjp1QlFiWjYyIVppQmlWVmJoYw==
另外,有了凭证还不够,需要业务账号给APP授权,才能正常使用业务账号的数据。具体怎么授权的,作者也没弄明白,是把问题提给业务部们,然后业务部门找到DHL的售后解决的授权,作者当时对接的是生成退货面单API,可以参考下我的提问方式,毕竟德国或业务部门的语言习惯和开发还是有些出入的。
我的提问
业务部门的回复:
最终,请求头如下