如何区分b / w从UI客户端和REST客户端进行的REST API调用

时间:2018-04-15 00:44:00

标签: rest api

我的应用程序中暴露了一堆REST API。我需要区分从UI客户端(用户单击按钮或提交表单)和从网络进行的调用进行的调用。例如,在mozilla浏览器中,用户可以打开网络选项卡并使用不同的参数调用API(只要用户仍然登录并在同一会话中)。无论如何我们可以在API实现中检查此调用是来自UI客户端还是仅来自REST客户端?提前谢谢。

2 个答案:

答案 0 :(得分:0)

HTTP客户端可以通过 User-Agent 请求标头提供有关自己的信息。

请参阅RFC-1945: HTTP - User Agent

非浏览器客户端可以在执行REST请求时将自己的标识符/信息设置为User-Agent请求标头,从而允许服务器根据使用的用户代理提供自定义内容的内容。

答案 1 :(得分:0)

没有办法区分。一旦用户通过身份验证,他们就会有一个会话,可以调用他们授权的服务并传入资源接受的任何参数。

如果我们假设没有人故意将其从REST客户端伪装,则在UI请求中添加数据以表明它可以在UI中运行,但是恶意的REST客户端可以发送相同的请求。