私人访问令牌这种受权方式比较特殊,不须要受权码,也不须要用户输入登陆凭证,而是用户给本身颁发访问令牌。这种受权方式在用户测试、体验平台提供的认证 API 接口时很是方便,好比微信开放平台和支付宝开发平台都有沙箱测试模式,在这种测试模式下获取受权令牌的方式其实就是经过私人访问令牌来实现的。php
在开放平台 blog
中注册对应的测试应用 testapp
,在 blog
项目根目录下运行如下命令来注册 testapp
:web
php artisan passport:client --personal > testapp # 显示结果 CLIENT_ID=14 CLIENT_SECRET=HImtGXC1CdG2LvhUpdp3y81IjuyrP0rLUPP8gisg
修改模型类:后端
use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use Laravel\Passport\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; ...
在 routes/web.php
中定义一个新的路由,用于测试获取访问令牌:api
Route::get('auth/personal', 'Auth\LoginController@personal');
在控制器 LoginController
编写对应的方法 personal
:微信
public function personal() { $user = User::where('name', '测试用户')->first(); $token = $user->createToken('Users')->accessToken; dd($token); }
访问 http://blog.test/auth/personal
就能够获取到该用户的访问令牌了。生成的令牌记录能够在 oauth_access_tokens
数据表中找到,私人访问令牌默认是长期有效的。app
拿到这个令牌以后咱们就能够经过它访问认证接口了。测试
以 Postman 为例,把上面获取到的令牌拷贝到 Bearer Token 头里面,访问 blog.test/api/user
接口,就能够获取到当前认证用户的信息了。code