首页 > 解决方案 > Laravel Passport 验证用户访问 API 数据

问题描述

我正在尝试在我的 laravel 5.6 / 护照应用程序中实施资源所有者密码凭据授予。我已经设置了所有基本配置。我希望用户能够只传递他们的用户名和密码,并让身份验证服务器传递授权类型,client_secret以及client_id护照路由http://dev.api.com/oauth/token

这是我的路线文件:

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::get('/login', 'IssueTokensController@login')->name('get.token');

我希望 IssueTokensController从 env 文件预填充client_idclient_secret重定向到护照路由。任何意见将是有益的

标签: phplaraveloauthoauth-2.0laravel-passport

解决方案


您不需要重定向到http://dev.api.com/oauth/token。您可以在自定义登录 ( IssueTokensController@login) 中添加此代码,然后生成个人访问令牌。

public function login(Request $request)
{
        $credentials = $request->only('username', 'password');

        if (Auth::attempt($credentials)) {
            // Authentication passed...
             $user = Auth::user();
             $token = $user->createToken('Token Name')->accessToken;

            return response()->json($token);
        }
}

检查文档以获取个人访问令牌。

https://laravel.com/docs/5.6/passport#personal-access-tokens


推荐阅读