ska*_*tek 6 rest erlang authorization restful-authentication erlang-otp
我正在设计一个 Erlang/OTP 应用程序,它将通过 RESTful API 公开其服务 (SOA)。
构成后端的服务将是数据库服务、价格计算服务等。
客户端可以有多种类型:Web 客户端、移动客户端、Asterisk 服务器客户端(需要在数据库服务中查找用户记录),甚至是我不打算拥有且还不了解的客户端。客户端将以不同的方式使用 RESTful API:有些将使用所有服务,有些将仅使用部分服务(SOA 方式)。
我主要关心的是身份验证/授权。

我无法使用 Ruby on Rails 的内置身份验证/授权,因为 Web 客户端只是通过 RESTful API 使用应用程序的许多可能客户端中的一个客户端。
所以,我的问题是:
只需检查其他人是如何执行此操作的,例如本文:Facebook 上的身份验证。
一般来说,这个想法是客户端调用一个单独的 API 调用来向系统验证自己的身份。系统可以接受任何客户或仅接受注册客户列表中的客户。一旦系统验证了客户端,它就会发出一个特殊的令牌,客户端随后在所有 API 调用中使用该令牌。在 Facebook 文档中,它称为访问令牌。如果客户端尝试在没有有效令牌的情况下调用 API,系统会将此报告为错误,并且在某些情况下可能会阻止客户端。
在 REST 中,令牌可以简单地作为 URL、POST 中的另一个参数发送,或者直接作为 JSON 中的附加字段发送。以 POST 或 JSON 形式发送可能是最好的,因为它可以保持 URL 干净(并且不会与任何可能基于 URL 的缓存发生冲突)。
这是这个想法的优点,但像通常一样,还有更多的事情需要考虑。例如,令牌应该很难猜测,因此客户端在未通过系统进行身份验证的情况下无法重新创建有效令牌。此外,如果在指定时间内没有调用 API,系统可能需要使令牌过期。
为了回答你问题的最后一部分,需要指出一些库:
| 归档时间: |
|
| 查看次数: |
5927 次 |
| 最近记录: |