1、twitter里授权用户登陆某个h5跟微信的授权方式不太一样。微信是通过jssdk和jsbridge的方式,提供接口给pc端的网站或者微信里的网站授权用户登陆。微信里授权pc端采用的是在微信开放平台上注册第三方网站应用,通过用户扫码的方式授权,在微信里授权网站还可以采用更方便的方式,通过登陆某个公众号,这种方式在微信环境下微信通过bridge与webview通信,获取当前用户,并在用户第一次访问的时候弹出授权登陆框,用户只需要点击授权按钮即可授权网站获取当前用户的id和头像昵称。可是twitter不一样,twitter没有jssdk没有js接口,只能通过跳转twitter第三方授权网站的方式,有两个非常糟糕的地方,(1)用户在推特里打开某个需要授权的网站链接,授权方式不仅仅是点击授权按钮,还需要输入账号密码,想象一下如果在 微信里打开一个需要登陆的链接需要你输入微信账号密码是个什么体验;(2)一旦用户授权,第三方网站将会获得范围非常大的操作用户账户的权限,包括修改用户头像昵称、删除推文、发布推文、删除用户的已有关注、为用户增加新的关注等等。

2、登陆相关的开发文档

(1)https://developer.twitter.com/en/docs/authentication/oauth-1-0a

也是需要先申请开发者账号,然后登陆第三方应用管理系统注册一个应用,获取key和secret

3、登陆流程

(1)调用https://api.twitter.com/oauth/request_token接口获取授权请求token(oauth_token)和授权密钥(oauth_token_secret),接口调用参数里包含了第三方网站的key和secret,以及回调地址

(2)跳转推特授权网页,并携带授权请求token,用户授权以后将会跳转到第一步中给的回调地址(这个回调地址需要在第三方应用管理系统里指定),并给出oauth_verifier,

(3)通过(1)中获取的oauth_token,oauth_token_secret和(2)中获取的oauth_verifier三个值去调用接口https://api.twitter.com/oauth/access_token,获取access_token,在access_token中包含了当前授权的用户id和用户昵称,以及可长期使用的API调用凭证oauth_token以及凭证密钥oauth_token_secret,这里的oauth_token,oauth_token_secret与(1)中获取的不一样,(1)中获取的是为了授权,这里的是为了调用其他接口。