1
multiple1902 2014-07-18 16:16:08 +08:00
OAuth 这样就挺好的。连接记得用 HTTPS 加密。
|
2
cxh116 2014-07-18 17:12:24 +08:00
- 每次登录后,为用户生成一个唯一的随机token,客户端调用时,把token传过来(query params or header),服务器根据token找到对应的用户
- 客户端调用需要验证的接口记得传token - 简单的方案就是采用https 其实web网站的session也是基于token实现的,只是token是写在cookies里,由web框架自动管理 参考资料 https://auth0.com/blog/2014/01/15/auth-with-socket-io/ |
3
mytharcher 2014-07-18 17:55:28 +08:00 via Android
|
4
GhostFlying 2014-07-18 17:59:00 +08:00 via iPad
oAuth2不错的
|
5
maikcn 2014-07-18 18:05:28 +08:00
之前上线的应用采用下面的方式
- 登录时按时间生成该次登录用的token - token保存在Redis,值可以再设置此次登录的用户ID之类的,并设置一个expire - 每次要校验的操作,到Redis判断这个token是否存在,及token对应值的用户是否当前用户,并重置生存期 - 长时间未使用,token自动清理 |
6
dorentus 2014-07-18 19:46:49 +08:00
OAuth2, 使用用户名和密码获取 access_token 和 refresh_token。每种客户端都预分配一个 client_id 和 client_secret(这样服务器就可以在必要的情况下禁用特定的 client_id;甚至可以根据不同的 client 分配不同等级的权限)。
> 判定用户是否已经登录 1) access token 没过期的话,直接认为用户已登录 2) access token 过期,有 refresh token 的话,使用 refresh token 来换取 access_token,成功的话就算登录成功,否则清除保存的 token,认为用户没有登录 3) 都没有的话,认为用户没有登录 > 如何对每一次 api 请求进行验证 OAuth2 的标准方式,每次发送请求时带上 access token。 > 服务端与客户端通信时确保用户授权信息不被泄露 使用 https。如果只是 app 用的话,使用自建 CA 签名的证书就可以满足要求,再 app 代码里作好证书验证即可;不过这样的话证书签发管理、处理证书过期等等会稍麻烦些,有条件的话还是建议购买正式的 ssl 证书。 ^ 参见: http://tools.ietf.org/html/rfc6749#section-1.3.3 ^ 注意服务器可以在必要的情况下强行使没过期的 token 失效(比如提供了让用户踢掉其它登录的客户端的功能),客户端发现这种情况要报错并提升用户重新使用用户名和密码登录。 |
7
wzxjohn 2014-07-18 20:31:35 +08:00
我觉得我目前接触的功能最多的REST API是Windows Azure,然后它的验证方式是证书验证。
|
8
mofeiwo 2015-12-08 15:07:01 +08:00 1
|