Kel*_*vin 5 oauth laravel laravel-5 laravel-passport laravel-5.4
正如laravel-passport中提到的,登录控制器是由我们的路由器制成的php artisan make:auth,并且在我们的路由器中web.php会有Auth::routes();
我们的简单代码client-site
Route::get('/redirect', function () {
$query = http_build_query([
'client_id' => 'client-id',
'redirect_uri' => 'http://client-site/callback-responses-url',
'response_type' => 'code',
'scope' => ''
]);
return redirect('http://server-site/oauth/authorize?'.$query);
});
Run Code Online (Sandbox Code Playgroud)
如果用户未登录,http://server-site/oauth/authorize?'.$query将被重定向到http://server-site/login
无论如何,我想将登录控制器重定向到我的自定义登录控制器。然后,在我完成检查后,如果为真,将显示有关的视图authorization request agreement
只是我尝试检查oauth/authorize,但没有找到任何函数或控制器处理该链接。如果再给一次机会的话。我想知道更多关于laravel-passportoauth 如何工作的信息,所以我custom authorization view也可以在用户登录后进行操作
任何帮助都会非常有帮助谢谢(:
在我在 Laravel Passport 中进行了大量搜索后,我得到了如何自定义 Laravel Passport 的解决方案。
你的里面app\Exception\Handler.php有一个代码
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
//return redirect()->guest(route('login'));
return redirect()->guest(route('accountLogin')); // change this part to your login router
}
Run Code Online (Sandbox Code Playgroud)
然后在您的login controller成功登录处理程序中添加此代码
if(session("url")["intended"] != null){
$redirect = session("url")["intended"];
}else{
$redirect = "/home";
}
return Redirect($redirect);
Run Code Online (Sandbox Code Playgroud)
该代码用于重定向回客户端页面。AuthenticatesUsers当然,如果您对它们的工作原理有更多了解vendor\laravel\framework\src\Illuminate\Foundation\Auth,您就可以构建自己的漂亮代码。
我发现的最后一步在这里:RouteRegistarar这是关于如何跨越路由授权的。
到目前为止,我还没有自定义我的授权页面。目前我正在编写一个漂亮的third party代码,以便客户端可以轻松使用它。
这就是我所知道的关于 Laravel Passport 自定义登录页面的全部信息
| 归档时间: |
|
| 查看次数: |
7820 次 |
| 最近记录: |