一旦您知道协议的工作原理,设置OAuth2提供程序就变得非常简单。这是一个2或3步的过程(取决于您的设置,以及是否代表用户或仅从服务器获取令牌)。
你需要什么
> OAuth2提供程序的工作代码
>耐心
你需要知道如何处理你的代码:
>创建客户端(公共和私有访问令牌)
找出授权和令牌端点的命名方式(通常是/授权和/令牌)
找出范围如何处理
获取令牌的第一步是调用/授权?response_type = code& client_id = [您的ID]& redirect_uri = [您的重定向URI]& scope = [您的范围],其中:
> clientid([您的ID])是您的公开访问令牌
redirect_uri([您的REDIRECT URI])是您的重定向URI。完成自动化步骤后,您将被重定向至此
范围是您未来令牌的范围
完成后(通常有一个提交按钮),您的浏览器将被重定向到URL中指定的URI(code = blah)。保存此值。
当你有这个代码时,调用另一端点:/ token?client_id = [你的ID]& client_secret = [你的秘密]& grant_type = authorization_code& scope = [你的范围]& code = [你的代码] & redirect_uri = [您的REDIRECT URI]
参数:
– client_id – 再次,您的客户端公钥
– client_secret – 你的私钥(这应该是一个服务器端的调用)
– 范围 – 令牌的范围 – 必须匹配第一个呼叫
– redirect_uri – 重定向URI – 必须匹配第一个呼叫
– 代码 – 你收到的代码
如果一切顺利,您将在屏幕上看到包含令牌信息的JSON对象。
后台会发生什么
步骤1(授权)
当您确认表单时,服务器将创建一个临时令牌(称为身份验证令牌),通常其使用寿命非常短(我的oauth2 sp代码通常将其设置为60秒)。这是您的服务器从接收代码到触发步骤2的时间。它只是一个确认系统,其目的是还存储步骤1中提供的信息以防止劫持。
步骤2(令牌)
这是您的访问令牌实际创建的位置。许多验证,很多东西,但最终,令牌只是一个链接您的client_id和您的令牌的值。就是这样。
无耻的插件:如果您使用Laravel框架,我从头开始构建了这个(而不是使用肮脏的,无文档的示例代码):http://bundles.laravel.com/bundle/oauth2-sp