百度地图AK鉴权说明与白名单设置方法

4,459 阅读4分钟

百度地图AK鉴权说明与白名单设置方法

问题

近期网站经常会提示未授权使用百度地图的提示: 百度未授权使用地图API

自己之前对百度地图开放平台的鉴权服务不是很清楚;所以做了一个详细的研究,接下来做个详细的描述希望能够帮助到大家

百度地图开放平台提供的ak分类说明

这个截图是百度底图开放平台官网的ak界面截图,百度地图应用管理台 从截图我们可以看到ak主要分为以下几类: 在这里插入图片描述

浏览器端

 应用功能:百度地图开放平台提供的所有javaScript API
 应用场景:H5网页,引入地图相关功能

微信小程序

 应用功能:百度地图开放平台提供的微信小程序API(https://lbsyun.baidu.com/index.php?title=wxjsapi)
 应用场景:主要在小程序中实现一些地址解析等功能

服务端

 应用功能:百度地图开放平台提供的所有服务接口 (https://lbsyun.baidu.com/index.php?title=webapi)
 应用场景:在服务器上封装相应接口、实现文档中描述的一些功能

ios应用、Android应用:

 应用功能:百度地图开放平台提供的供移动端APP开发的SDK(iOS、Android)
 应用场景:在APP中引入相应功能的SDK包,实现某些地图功能(地图展示、测距、导航、路线规划等)

从AK分类来看,百度地图开放平台对ak的使用场景做了严格的限制、比如在H5页面中引入jsapi的话使用服务端类型的ak、肯定会出现截图中描述的问题;所以我们一定要按照自己的需求选择合适类型的ak。

问题排查

截图的弹窗提示一般出现在网页中,针对问题中描述的弹窗提示的截图,可以按步骤排查一下: 1、检查自己引入地图功能的时候是否设置了ak; 我们引入百度地图网页版API的链接一般是这个: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> 可以检查一下自己是否将您的密钥修改成了自己账户下的 浏览器类型的AK; 如果没有替换的话就到百度地图开放平台官网申请相应类型的AK、替换一下 2、如果确认已经替换了ak,那么需要确认一下自己引入的ak类型是否正确: 还是到百度地图开放平台的控制台应用列表中检索一下,比如我这个ak就是错误使用了微信小程序类型的ak 搜索结果

当然了,还会有一种情况:你的ak已经被误删了搜不到,那么就需要创建新的ak来替换了 3、如果上一步检索到的ak是浏览器类型的,但是还是有弹窗提示;这样就得检查您的白名单设置了修改应用

在搜索结果中选择修改应用会看到如图所示的画面: 白名单设置

我们一定要确认: 1)勾选了javascript功能 2)白名单设置是否正确 白名单的说明: 这个白名单下边有详细介绍,但是还是很难理解。 例如: * 是所有网站都可用 但是安全性很差,所有人都可以抓到这个ak来使用;这对前端来说是难以接受的,万一被抓走干坏事被封了就会影响自己使用。

   如果您的网站一级域名是 www.baidu.com ,那么建议设置为 ``*.baidu.* ``
   这样您的该域名下的所有链接就都可以正常使用相关功能了;
   

谨记,一定要有*号通配,千万不能设置成baidu.com;这样校验的时候肯定通不过啊

如果您的网站域名是 lxn.cool 这种形式的,建议设置为 *lxn.cool*

鉴权测试

最后,实际上百度地图jsapi的鉴权URL是这个:api.map.baidu.com/?qt=verify&…**************** 把您自己的ak替换一下,访问这个请求看看返回什么内容; 鉴权通过的状态码是:

{
	"error": 0
}

如果error是0的就可以正常使用功能了,如果是其他的状态码就自己对照状态说明自己排查了: https://lbsyun.baidu.com/index.php?title=webapi/appendix