Laravel Passport验证用户以访问API数据

时间:2018-06-19 16:26:39

标签: php laravel oauth oauth-2.0 laravel-passport

我试图在我的laravel 5.6 /护照应用程序中实现“资源所有者密码凭证授予”。我已经设置了所有基本配置。我希望用户只能传递其用户名和密码,并使身份验证服务器将授予类型client_secretclient_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从环境文件中预填充client_idclient_secret并重定向到护照路径。任何建议都会有所帮助

1 个答案:

答案 0 :(得分:1)

您无需重定向到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