很多网站都有使用第三方账号登录的功能(现在基本上都是通过OAuth 2.0来实现的),如果自己的网站或项目要实现这样的功能,其实也很简单。下面就以新浪微博提供的开放api来做一个说明。
1、到微博开放平台去申请一个appkey和appsecret,并填写好各种资料
2、程序开发
新浪微博开放平台提供了SDK下载,我们就可以用它里面的现成的 新浪微博 OAuth 认证类,其类名为SaeTOAuthV2。
我提供了一个现成的可供下载,里面不光有SaeTOAuthV2这个类,还封装了一个新浪微博各种接口的操作类SaeTClientV2,其实我们用不着它,或是我们可以自己根据它提供的API来构建自己的类。(我用的是php语言)
1)新浪微博 OAuth 认证流程第一步,是把用户引导到新浪微博OAuth 认证的页面的,所以我们需要获取这个页面的url.
说一下$callback_url,这个意思就是新浪认证完后会跳转到你指定的这个url页面,在这个页面你可以对认证的结果进行处理。另外,我们一般是以code方式来进行认证,就是getAuthorizeURL函数的第二个参数,其他的几种认证方式可以自行参阅新浪的文档。
2)第二步是,在$callback_url这个回调页面,对认证结果进行处理。
当用户在新浪微博OAuth 认证的页面进行登录和授权完成后,会跳转到我们指定的$callback_url这个页面,并且,这个页面的url中会有一个code参数,这个参数是新浪给我们的,我们正是使用这个code参数的值去获取access_token令牌。
注意,我们得到的$token是一个数组,$token[‘access_token’] 才是真正的access_token令牌,我们可以把它储存在session等当中,方便以后调用。
3) 第三步,有了access_token令牌,我们就可以访问新浪微博提供给我们的各种api接口了。
至于有哪些api以及它们返回的结果,可以参考新浪的api文档,返回的都是json数据。
获得了access_token令牌,也就表明我们能通过api获取该新浪微博用户的相关信息了,利用这些信息就可以开发登录功能了,如绑定账号等等。
好了,就是这么简单,把流程理清楚了,什么事都会很容易的。