最近看到TesterHome Natvie App这篇文章,心里痒痒的,就参照这个项目写了 TesterHome App ,至于为什么没有在原先的项目是进行,实在是因为本人的水平低。所以真的是不敢献丑。这次的话主要是分享下关于 Testerhome 的用户登录,授权的一些实现。具体不会涉及到代码的实现。只是说下一下数据的请求,方面后续谁进行开发的时候能够少走一些坑,也少一些百度。
TesterHome 的 Api 上面就只有简单一句说明:
使用标准的 OAuth 2 实现登录,获得 access_token 信息。
以及相应的请求路径。这个对于 OAuth2 基本不了解的我来说就犯难了,所以找到了腾讯开发平台 OAuth2.0 开发文档这里就说明的很详细了,我们总共就是要做两件事:
不过这里还遗留一个问题刚才的链接上面说明
适用于需要从 web server 访问的应用,例如 Web/wap 网站
移动端的 app 应该不是使用这种方式的,再次浏览了下腾讯开放平台的网页确实发现了使用 Implicit_Grant 方式获取 Access_Token
按照上面的构造的 url 请求结果显示的是
TesterHome 的 response_type 没有 token 这种类型。这里我只是疑惑是不是 testerhomew 不支持这种了。
继续往下,按照刚才的步骤我们需要获取到 Authorization Code,想要获取到这个我们需要做一些准备工作 - 创建一个应用:
注册应用
这里我使用的应用名直接是 “TesterHome”
回调地址按照提示信息的使用 “urn:ietf:wg:oauth:2.0:oob”
点击提交。OK,我们已经成功的创建一个需要授权的应用了,这里面就有一个很重要的 client_id 以及 client_secret。
好了 我们先构造第一个获取 Authorization Code 的 URL 请求吧。
https://testerhome.com/oauth/authorize?response_type=code&client_id=402e7adf&redirect_uri=urn:ietf:wg:oauth:2.0:oob
这个就是我们需要用到的授权码了。
再来通过授权码就能够获取到我们要用的 accesstoken。
这里需要注意一点文档上面有一个坑,获取 accesstoken 的请求并不是 get 方法而是 post。这个问题真是纠结了我好久。
这里就获取到了我们要用的 access_token 了。关于 refresh_token 是用来重新请求一个 access_token 不用重新登陆用的,在文档里面也有说明。
下来看看 App 具体的流程。(代码就不帖了。。实际上很多都是参考之前TesterHome Natvie App实现的)