我正在开发支持两种身份验证协议的REST API:
我开发了一个流程,其中未经身份验证的请求被重定向到“登录表单”,问题是这对于非borwser客户端来说是一种不受欢迎的行为!
我想根据“User-Agent”决定解决这个问题:浏览器将被重定向到“登录表单”,非浏览器客户端将获得标准401:基本身份验证。
:一种。您对此解决方案有何看法?
的 B中。 Java中是否有标准的方法来检查请求是否来自浏览器,还是我需要自己开发这种机制?
提前致谢!
答案 0 :(得分:1)
由于您可以完全控制客户端,因此您可以通过许多其他方法执行此操作而无需检查用户代理,
使用其他URL进行客户端登录。我们的客户端没有返回HTML,所以我们使用不同的端点。
在URL中传递一个特殊参数,如client_version。
如果您坚持要检查用户代理,请使用特殊字符串,以便其他所有内容都是浏览器。