最近要给 手机应用客户端提供 api 目前还不确定用哪些,或则 sinatra 还是 grape?,求推荐!!
回到主题 因为 api 需要权限控制,所以有些 api 需要带上 token。 请教大家:服务端产生的 token,一般是放在数据库,每次请求 api 都查询一次 还是放在内存中,然后设计过期时间?
麻烦大家提供靠谱点的思路
(我看了下 ruby-china 的代码,好像直接存入 user 表,每次请求查询一次的)
或者是一个简单的,我们现在使用的就是 token。 在访问任何服务之前都需要先访问一个获取 token 的服务,服务在后台生成一个 token,存入数据库。 后续的服务访问,都需要传入 username 和 token,服务会判断 token 是否和 username 匹配,token 是否过期。 过期用的定时服务,定时删除超时的 token,下次验证就可以做过期提示了。
这个比较简单。 可以增加一个授权的过程。 就是 client 提交 key-secret,验证 client 是否合法 client。 如果是合法 client,返回一个未授权的 token,然后再用这个 token 请求一个授权的 token。 使用授权的 token 访问服务。
个人建议用 sinatra,更灵活 token 的话,不如直接上 oauth? https://github.com/songkick/oauth2-provider
每次请求都要带上其实是 session token 一般是用来做一次验证,短时间过期,验证通过之后换 session session 解决方案很多,不用自己做了