我目前正在创建一个网站,用户可以查看和修改他们的小部件。与存储在我的服务器上的小部件数据的所有交互都将通过 RESTful Web 服务完成。例如,如果用户想要查看他们的小部件列表,则执行流程将类似于:
- 用户 12345 访问
https://www.example.com/Login.htm
服务器并对其进行身份验证(在我的情况下通过 OpenID 提供程序) - 用户 12345 然后访问该页面
https://www.example.com/Widgets.htm
- 服务器以 HTML 页面和 javascript 响应,用于访问我的 Web 服务。
- 当 HTML 页面加载后,
getWidgets()
将调用 javascript 函数。getWidgets()
将调用我的网络服务https://www.example.com/Services/Widget/12345
- 该服务以用户小部件列表进行响应,另一个 javascript 函数
renderWidgets(widgets)
将更新 html 页面
除了用户 12345 之外,我不希望其他任何人访问他们自己的小部件,所以我想getWidgets()
必须为我的 Web 服务提供一些身份验证。我不确定实现这一目标的最佳方法是什么。
我在想客户端和服务器可以有一个共享的秘密,getWidgets()
将发送到网络服务。服务器可以将这个秘密生成为随机字符串(数字、GUID 或其他),并在客户端请求初始 HTML 页面时将其包含在响应标头中。客户端在向服务器发送请求时将使用此密钥。
这听起来像一个明智的想法吗?
这是一个常见的要求,那么是否有实现相同目标的标准方法?据我所知,这超出了 OpenID 的范围,OAuth 不适合。
提前致谢。