通用技术 TesterHome native app 登陆授权介绍

saii · 2015年10月11日 · 最后由 冰渣儿 回复于 2015年10月13日 · 2103 次阅读

前言:

最近看到TesterHome Natvie App这篇文章,心里痒痒的,就参照这个项目写了 TesterHome App ,至于为什么没有在原先的项目是进行,实在是因为本人的水平低。所以真的是不敢献丑。这次的话主要是分享下关于 Testerhome 的用户登录,授权的一些实现。具体不会涉及到代码的实现。只是说下一下数据的请求,方面后续谁进行开发的时候能够少走一些坑,也少一些百度。

正文:

TesterHome 的 Api 上面就只有简单一句说明:

使用标准的 OAuth 2 实现登录,获得 access_token 信息。

以及相应的请求路径。这个对于 OAuth2 基本不了解的我来说就犯难了,所以找到了腾讯开发平台 OAuth2.0 开发文档这里就说明的很详细了,我们总共就是要做两件事:

  1. 获取 Authorization Code
  2. 通过 Authorization Code 获取 Access Token

不过这里还遗留一个问题刚才的链接上面说明

适用于需要从 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实现的)
这里写图片描述

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

@vclub 不知道进展怎样了。

不错啊!大神

#3 楼 @lihuazhang 呵呵 最近在上海加班啊 没时间弄啊,今天看客户端时候发现这个帖子,之前已经验证过了,可以工作,参考一下这个,正好放到代码里

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册