如果我正在开发Chrome扩展程序(即地址是本地的),我如何获得Google API密钥?
我正在寻找有关RESTful API设计的建议.我已经阅读了很多关于REST API方案,认证/授权方法等等.我无法决定是否真的需要使用API密钥.根据我的理解,使用API密钥非常有用,如果您想监控使用情况,限制每个应用程序的请求和统计数据.
我想要避免的是必须创建额外的Web界面来添加/管理/删除应用程序以及添加/删除应用程序管理员.也许有一种更简单的方法来进行API密钥分发.或者我真的需要那些吗?我的意思是,监控和限制使用是很酷的,听起来很有用,但是它需要我为密钥分发做的其他事情.
更具体地说,我的网站就像slidehare和scribd.我希望为其功能提供API访问权限,例如添加和管理文档以及获取有关用户的信息.因此,例如,要上传文件,您需要以某种方式进行身份验证并使用特定帐户来执行此操作.在这种情况下,API密钥是一个要求,还是我可以坚持认证用户?
那么您认为处理API密钥的最佳方式是什么?或者我应该使用它们?是否有更聪明的方式来分发(创建,删除)密钥?
提前致谢 :)
我的Android应用程序是OpenSource,我有点害怕在Github上共享代码,因为我的API密钥也是共享的.
我可以忽略我的strings.xml文件,但我真的希望有一个替代方案,我将能够做一些聪明的事情,所以我不必担心它.
有什么想法或建议吗?
我需要一个消费者密钥和我正在开发的R包的秘密.每个用户申请和获取他们自己都有点麻烦,并且确实没有必要,因为他们必须使用用户名/密码进行身份验证才能使用包功能.但是,我不允许在公开场合分享我的钥匙.有没有什么方法可以将密钥+秘密(或任何信息)隐藏在我的包源中,一旦它在CRAN上?我猜的答案是肯定的,但我想确保我不会错过其他想法.
更新:我预见的唯一滥用是有人在另一个应用程序中提取和使用密钥来最大化我的速率限制.但如果是这样,那么我可以删除它.但是我可能还有其他形式的虐待.也许我应该让每个人都申请自己的.
我有一个舞者网络应用程序,它是部分网站和部分网络服务; 我的应用程序上的某些路由应该有auth.
我为Dancer Web应用程序找到的所有auth解决方案都需要重定向到登录页面; 虽然这对于交互式使用是可以的,但这对于宁静的Web服务来说并不是最佳选择.
是否有一个auth解决方案,允许像api键这样的东西?
我在我的网站上使用google maps api并想使用我的API密钥,但我对如何保证它的安全感到困惑.我知道我可以直接将实际密钥硬编码到index.html中
<!DOCTYPE html>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=HARDCODED_KEY"></script>
Run Code Online (Sandbox Code Playgroud)
但是,当他们查看网站的源代码时,任何人都可以看到它.如果有人使用调试工具(如Firebug)查看网站,我也不希望它出现在DOM中.
我假设有一种方法可以将它存储在我可以提供的单独文件(可能在我的html /目录之外)中.如果有人能提供一个例子或评论这种方法是否相对安全,我真的很感激帮助.我在这个主题上找到了其他帖子,但没有一个适用于这个(相对简单的)案例.
我正在使用适用于IOS的Google Maps API开发iOS应用.我为我的项目安装了CocoaPod,并根据Google Developer上的教程配置它们.但是,当我运行我的项目时,它说
***由于未捕获的异常'GMSServicesException'而终止应用程序,原因是:'Google Maps SDK for iOS必须>在使用之前通过[GMSServices provideAPIKey:...]进行初始化
但我已经在AppDelegate.swift上调用了"GMSServices.provideAPIKey.以下是代码:
....
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
GMSServices.provideAPIKey("***********************")
return true
}
....
Run Code Online (Sandbox Code Playgroud)
(**************)是我的API密钥.
由于Google Maps API使用Objective C,因此我创建了一个桥接头来导入库.
我试图在[application:didFinishLaunchingWithOption]上设置断点.但它会在运行该函数之前引发异常,我认为这很奇怪.
对此感到困惑.提前致谢.
我正在为Windows 10制作一个客户端应用程序.我有一个问题,我想开源我的代码,但让其他人看不到API密钥.这是我的源文件的相关部分:
private const string ApiKey = "YOUR_API_KEY";
Run Code Online (Sandbox Code Playgroud)
我想把它变成
private const string ApiKey = "THE_ACTUAL_API_KEY";
Run Code Online (Sandbox Code Playgroud)
什么时候编译.我该怎么做呢?
编辑:对不起任何含糊之处; 我问如何防止GitHub上的源代码的查看者看到字符串,而不必在本地构建期间更改它.此问题与加密无关.
我正在使用chriskacerguis/codeigniter-restserver来创建我的其他api服务器,我正在尝试启用api密钥,但问题是即使我按照说明操作,我也无法使用任何密钥进行身份验证,即使所有请求都通过,即使他们在请求中没有api密钥头.
这是我目前的配置
rest.php
$config['rest_keys_table'] = 'keys';
$config['rest_enable_keys'] = TRUE;
$config['rest_key_column'] = 'api_key';
$config['rest_limits_method'] = 'ROUTED_URL';
$config['rest_key_name'] = 'X-API-KEY';
Run Code Online (Sandbox Code Playgroud)
我的表是使用以下sql查询创建的.
CREATE TABLE `keys` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`api_key` varchar(255) NOT NULL,
`level` int(2) NOT NULL,
`ignore_limits` tinyint(1) NOT NULL DEFAULT '0',
`is_private_key` tinyint(1) NOT NULL DEFAULT '0',
`ip_addresses` text,
`date_created` int(11) NOT NULL,
`api_key_activated` enum('yes','no') NOT NULL DEFAULT 'no'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `keys` (`id`, `user_id`, `api_key`, `level`, `ignore_limits`,
`is_private_key`, `ip_addresses`, `date_created`, …Run Code Online (Sandbox Code Playgroud) 因此,gradle插件也更新为3.3,而Gradle也更新为4.10。之后,Crashlytics停止工作并出现错误:
Crashlytics found an invalid API key: null
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我被迫恢复Gradle使其重新工作。使用Firebase配置的Crashlytics