微服务架构入门

时间:2015-08-06 18:57:08

标签: api rest login architecture

我对微服务非常陌生,我想在纸上模拟一些简单的东西:允许用户登录和上传照片的应用程序(例如)。

我认为我需要:

  • 登录服务
  • 用户服务
  • 图片服务

任何人都可以协助描述API的外观吗?

登录服务:

  • (POST)登录?user = username& pwd = password - 记录用户

用户服务:

  • (GET)User& user_id = 123 - 获取指定的用户
  • (POST)用户 - 创建新用户
  • (POST)用户& user_id = 123& name = John - 更新现有用户
  • 此示例中的删除方式如何

当然,照片会跟用户服务类似。

但是,我很难理解如何使用登录服务?这是否意味着我们必须每次调用我们需要对用户进行身份验证的登录服务?或者一般的互动是什么?

感谢您的任何见解

1 个答案:

答案 0 :(得分:0)

为了保护API,事实上的方法是做这样的事情: -

<强>验证
验证用户通常每会话发生一次 - 其中会话通常是指如果客户端在指定时间段内处于非活动状态,则用户自动注销的时间段。

例如,如果使用Enterprise Java,通常会将应用程序服务器配置为在一段不活动时间内使HttpSession超时。您可以对用户进行身份验证 - 通常是通过将基本身份验证凭据(用户名/密码)与您注册后为其存储的某些配置文件(使用某些注册服务)进行比较。作为验证用户的一部分,将创建HttpSession并在每个请求上存储和检查用户的ROLE,以检查会话是否仍然有效。如果会话超时,则需要再次将用户定向到身份验证服务。

如果使用无状态框架(请求之间没有会话),那么通常会为每个请求来回传递一些令牌,并具有某种验证机制,即。用户个人资料存储在缓存中。

将身份验证视为ONCE PER SESSION。

<强>授权 对于每个请求(假设会话仍然有效),您将检查用户的ROLE是否具有执行所请求操作的必要权限。

OAuth - 授权框架的示例 - 通常用于验证第三方客户端是否可以访问您的某个用户资源,但如果您查看OAuth 2,则可以了解基于令牌的内容在请求之间验证用户/客户端的方法。

将授权视为每次请求。