正如在拉拉-护照中提到的,登录控制器是由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);
});如果用户未登录http://server-site/oauth/authorize?'.$query,则将重定向到http://server-site/login
无论如何,我想将登录控制器重定向到我的自定义登录控制器。然后,在我检查了使用if是true之后,就会看到关于authorization request agreement的显示视图。
简单地说,我试图检查oauth/authorize,但没有找到任何函数或控制器处理该链接。如果再给我机会。我想知道,关于laravel-passport的更多信息,oauth是如何工作的,在用户登录之后,我也可以制作custom authorization view。
任何帮助都会很有帮助的谢谢(:
发布于 2017-07-18 02:31:33
在对laravel护照做了大量搜索之后,我找到了如何定制laravel护照的解决方案。
在您的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
}然后在您的login controller (处理程序)中,成功登录添加以下代码
if(session("url")["intended"] != null){
$redirect = session("url")["intended"];
}else{
$redirect = "/home";
}
return Redirect($redirect);该代码用于重定向回客户端页面。当然,如果您对AuthenticatesUsers in vendor\laravel\framework\src\Illuminate\Foundation\Auth的工作原理有更多的了解,那么您可以构建自己漂亮的代码。
我发现的最后一步是:RouteRegistarar,这是为了如何跨越路由授权。
直到现在,我还没有自定义我的授权页面。目前我正在做一个漂亮的third party代码,所以客户端可以很容易地使用它。
这就是我所知道的关于laravel护照来自定义登录页面的全部信息。
发布于 2018-07-03 12:46:23
您可以使用personal access token方法
在这里,您将编写自定义身份验证方法,当传递自定义验证时,您将为用户生成一个访问令牌。
即公共函数myCustomLoginMethod(Request $req) {
// your custom authentication here
$user = User::where("email",$req->email);
//test for password and like so
if (! Hash::check($req->password, $user->password)) {
// wrong password
return response('Unauthorize', 401);
}
if ( $user->is_admin ) {
//create a token for the user
$token = $user->createToken('Token Name')->accessToken;
}else {
//handle else
}
return token}
https://stackoverflow.com/questions/44938974
复制相似问题