Laravel 5.3 Passport oauth - Single client multiple access token - Alexa
我是 oAuth 的新手,但我需要将其集成到 Alexa 家庭套件技能中。
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system
我正在为此苦苦挣扎,但我知道我需要使用授权码授予。
在谷歌搜索之后,我想我会尝试使用 Laravel Passport 进行设置(我计划构建一个 Web 平台,所以我不会将 Laravel 纯粹用于 oAuth) - https://laracasts.com /series/whats-new-in-laravel-5-3/episodes/13
我从未使用过 Laravel(PHP 新手),但我花了几个小时阅读 Laracast 指南,所以我有一个基本的了解。
我能够使用 Laravel Passport 设置一个 oAuth 服务器,创建一个客户端,使用我在 Alexa 应用程序上配置的客户端 ID、Secret 和 Auth URL,并让 Alexa 帐户链接正常工作。太好了。
问题是,目前只有我一个用户。在 Alexa 应用程序中,您只能配置一个客户端 ID
如果您将护照用于第一方应用程序,您可以使用密码授予令牌。
先创建密码客户端
1 | php artisan passport:client --password |
然后在 form_params 和用户凭据中传递客户端 ID 和客户端密码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $http = new GuzzleHttp\\Client; $response = $http->post('http://your-app.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'password', 'client_id' => 4, 'client_secret' => 'asefwwsgaqwsfwghhw3eqrfdhe', 'username' => '[email protected]', 'password' => '123456', 'scope' => '', ], ]); return json_decode((string) $response->getBody(), true); |
然后它会返回一个token,并用它来传递给header中的