首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将api密钥传递给rest api

将api密钥传递给rest api
EN

Stack Overflow用户
提问于 2011-12-19 21:01:16
回答 2查看 47K关注 0票数 29

我使用phil sturgeon for codeigniter创建了一个REST api,到目前为止,我已经能够创建一个简单的库来为用户生成REST_Controller密钥。我现在的问题是为每个请求将api密钥发送到API,我如何做到这一点而不必为每个请求手动发送它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-19 21:39:17

你应该研究一下请求签名。Amazon's S3 REST API就是一个很好的例子。

概述实际上是相当简单的。用户有两个重要的信息来使用你的API,一个公开的用户id和一个私有的API密钥。它们将公共id与请求一起发送,并使用私钥对请求进行签名。接收服务器查找用户的密钥,并决定签名的请求是否有效。流程是这样的:

  1. 用户加入您的服务,并获得用户id (例如123)和API密钥。

API用户想要向您的API服务发出请求以更新其电子邮件地址,因此他们需要向您的API发送请求,可能是向

  1. 发送请求,以便能够验证请求。用户将用户id和

签名添加到调用中,这样调用就变成了API服务器接收调用,看到它来自userid=123,并查找该用户的API密钥。然后,它重复从数据创建签名的步骤,如果签名匹配,则该请求是有效的。

这种方法确保应用程序接口密钥永远不会作为通信的一部分发送。

看看PHP的hash_hmac()函数,它在发送签名请求时很流行。通常,您会让用户执行一些操作,例如将所有参数放入一个数组中,按字母顺序排序,连接成一个字符串,然后对该字符串执行hash_hmac操作以获得符号。在此示例中,您可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$sig = hash_hmac("sha256",$params['email'].$params['userid'],$API_KEY)

然后,如上所述,将该$sig添加到REST url。

票数 54
EN

Stack Overflow用户

发布于 2011-12-19 21:24:26

REST的思想是它是无状态的-所以没有会话或任何东西。如果您想进行身份验证,那么就需要使用密钥,并且必须为每个请求传递密钥,并且每个请求都对用户进行身份验证(因为REST是无状态的,我有提到过吗?)

您可以通过多种方式传递密钥。您可以将其作为参数(即http://example.com/api/resource/id?key=api_key)传递,也可以将其作为HTTP头的一部分进行传递。我见过指定您发送用户名的API,以及作为HTTP basic access authorization头的密码部分的API密钥。

请求示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'http://example.com/api/resource/id',
    CURLOPT_USERPWD => 'martinbean:4eefab4111b2a'
));
$response = curl_exec($ch);

其中API是我在您网站上的帐户用户名,4eefab4111b2a是我的martinbean密钥。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8567512

复制
相关文章
将机器学习模型部署为REST API
这些疑问,我们以前碰到过,通过不断的摸索,试验出了不同的复杂机器学习的上线方法,来满足不同场景的需求。在这里把实践经验整理分享,希望对大家有所帮助。(我们的实践经验更多是倾向于业务模型的上线流程,广告和推荐级别的部署请自行绕道)。
机器学习AI算法工程
2019/10/28
3.4K0
将机器学习模型部署为REST API
REST API和SOAP API区别[通俗易懂]
REST API 优点: 1. 轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML。 2. 可读性比较好:可以把URL的名字取得有实际意义。 3. 不需要SDK支持:直接一个Http请求就可以,但是SOAP则可能需要使用到一些Webservice的类库(例如Apache的Axis) 缺点: 1. 复杂的应用中,URL可能非常长,而且不容易解析。 SOAP API 优点: 1. 定义严格。必须符合SOAP的格式 2. 某些时候使用比较方便 3. 开发工具支持比较多一点。 缺点: 1. 需要生成WSDL文件
全栈程序员站长
2022/09/14
2K0
Rest api简介
理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式。 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言。又比如,当我使用 Java 编程的时候,我希望得到 ATOM 格式的返回结果,而当我使用 JavaScript 编程的时候,我希望得到 Json 格式的返回结果。 因此,我们在设计 REST API 的时候,应该提供完备的内容协商能力。 使用 URL 参数进行内容协商 最容易想到的自然是通过 URL 参数进行控
xiangzhihong
2018/02/02
2.2K0
Rest api简介
Elasticsearch:REST API
在 Elasticsearch 中,所以的数据都是以 JSON 的格式来进行表述的。这个和其它的有些数据库,比如 Solr,它支持更多格式的数据,比如 xml, csv 等。
HLee
2021/01/26
1.3K0
Elasticsearch:REST API
REST API设计指导——译自Microsoft REST API Guidelines(一)
前面我们说了,有章可循,有据可依,有正确的产品流程和规范,我们的工作才不至于产生混乱,团队的工作才能更有成效。我们经常见到,程序开发可能只用了半个月,但是接口的联调却经常需要花费半个月甚至一个月左右。
雪雁-心莱科技
2018/12/27
1.1K0
REST API设计指导——译自Microsoft REST API Guidelines(二)
另外:最近团队在做一些技术何架构的研究,视频教程只能争取周末多录制一点,同时预计在下周我们会展开一次直播活动,内容围绕容器技术这块。
雪雁-心莱科技
2018/12/27
1K0
REST API和GraphQL API的比较
REST(表述性状态传输)API 是一种应用程序接口 (API) 的架构风格,它使用 HTTP 请求来访问和使用数据。该数据可用于GET、PUT、POST和DELETE数据类型,指的是对资源的读取、更新、创建和删除操作。 RESTful API 使用 HTTP 方法在处理数据时执行 CRUD(创建、读取、更新和删除)过程。 为了促进缓存、AB 测试、身份验证和其他过程,标头向客户端和服务器提供信息。 主体包含客户端想要传输到服务器的数据,例如请求的有效负载。
用户4235284
2023/10/14
5640
REST API和GraphQL API的比较
REST API设计指导——译自Microsoft REST API Guidelines(三)
前面我们说了,如果API的设计更规范更合理,在很大程度上能够提高联调的效率,降低沟通成本。那么什么是好的API设计?这里我们不得不提到REST API。
雪雁-心莱科技
2018/12/27
1.1K0
REST API设计指导——译自Microsoft REST API Guidelines(四)
前面我们说了,如果API的设计更规范更合理,在很大程度上能够提高联调的效率,降低沟通成本。那么什么是好的API设计?这里我们不得不提到REST API。
雪雁-心莱科技
2018/12/27
2K0
Elasticsearch(二)——Rest API
RESTful 接口 URL 的格式是: http://cluster的地址: 9200/<index>I<type>I [<id>] 其中,index, type 是必须提供的( index 可以理解为数据库;type 理解为数据表); id 是可选的(相当于数据库表中记 录的主键是唯一的。如果不提供, Elasticsearch 会向动生成。增 、删、改,查分别对应 HTTP 请求的 PUT 、DELETE、POST、GET方法。
羊羽shine
2019/05/29
1.1K0
【Elasticsearch】Rest风格API
Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。
陶然同学
2023/02/24
1K0
【Elasticsearch】Rest风格API
Microsoft REST API指南
经过3个月的碎片时间的翻译和校验,由长沙.NET技术社区翻译的英文原文文档《Microsoft REST API指南 》已经翻译完成,现刊载前十一章如下,欢迎大家点击“查看原文”按钮,查看指南的完整内容。
AI.NET 极客圈
2019/08/14
4.6K0
什么是REST API
原文链接:https://www.sitepoint.com/rest-api/[1]
chuckQu
2022/11/28
4.3K0
什么是REST API
Yarn Rest Api使用
前言 Yarn Rest Api 返回的数据都是XML格式,需要解析XML。 任务查询 查询所有任务 http://hadoop02:8088/ws/v1/cluster/apps 字段说明 Item DataType Description id string 应用的application-id user string 提交任务的用户名 name string 应用程序的名称 queue string 应用程序所属消息队列 state string 应用程序当前状态 finalStatus str
码客说
2023/01/08
2.2K0
Storm UI REST API
Storm UI 守护进程提供了 REST API, 允许我们与 Storm 集群进行交互, 其中包括查看指标数据,配置信息以及启动或停止拓扑的管理操作。REST API 结果以 JSON 形式返回。
smartsi
2019/11/28
2K0
聊聊rest api设计
序 本文主要研究下rest api的设计。 设计准则 easy to use & hard to misuse 易用不易误用,也就是api设计不要太复杂,要简单易用,而且还不能容易用错。 least astonishment 简单就好,不要试图提供其他花哨、华丽的额外功能,比如对于时间类似的字符串参数,规定好一个输入格式即可,不要试图同时兼容多种格式输入。 use case & document story api文档要围绕story或者use case来进行,在一个业务场景下提供完整的闭环操作。 输入规范
code4it
2018/09/17
9690
REST API 最佳实践
客户端(前端)和服务器(后端)之间的通信通常不是超级直接的。因此,我们使用一个叫作“应用编程接口”(或 API)的接口,作为客户端和服务器之间的中介。
恋喵大鲤鱼
2023/05/07
1.7K0
REST API 最佳实践
快速模拟 Rest API
在前后端开发过程中,通常会通过 web api 进行沟通,Rest 风格和 JSON结构是常用的,例如前端要获取文章列表,需要通过 GET /post 来取得数据,返回的数据例如 { "posts": [ { "id": 1, "title": "test", "author": "me" }, ...... ] } 后端来定义路由和返回JSON数据 开发中,后端实现API的速度可能不能满足前端开发的速度,前端为了不必等待后端,可以自己来模拟这个API,按照规定好的数据结构来返回模
dys
2018/04/03
2K1
快速模拟 Rest API
Flink监控 Rest API
Flink具有监控 API,可用于查询正在运行的作业以及最近完成的作业的状态和统计信息。Flink 自己的仪表板也使用了这些监控 API,但监控 API 主要是为了自定义监视工具设计的。监控 API 是 REST-ful API,接受 HTTP 请求并返回 JSON 数据响应。
smartsi
2020/11/16
3.7K0
REST API工具推荐
市面上可用的 REST API 工具选项有很多,我们来看看其中一些开发人员最喜欢的工具。
深度学习与Python
2020/08/28
2.5K0

相似问题

生成REST api的api密钥

10

REST和API密钥

25

将字典传递给REST API

10

如何使用API密钥保护REST API

129

Wordpress REST API应用密钥

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文