我正在从外部站点提取用户信息。我已经完成了Laravel上的用户登录路线,并且从控制器文件中获取了数据。从外部链接中提取和显示数据没有问题。
在外部用户登录验证之后,我实际上并不知道如何使用中间件,防护,会话等。我需要有人来指导我解决这个问题。
已安装Laravel 5.8 uzz 护照
我的更改如下:
我的ApiController文件
public function loginData(Request $request)
{
$password = $request->password;
$email = $request->email;
$apiman = "Bearer {$this->accesstokenApi()}";
$client = new Client();
$response = $client->post('https://externalapiurl.com/api/v1/UserProfile/', [
'headers' =>
[
'postman-token' => 'b2ddea32-1620-5b54-3835-40fb288981e8',
'cache-control' => 'no-cache',
'authorization' => $apiman,
'content-type' => 'application/json'
],
'json' =>
[
'Email' => $email,
'Password' => $password
],
]);
$data = json_decode((string) $response->getBody(), true);
if ($data['ResponseType']=="Ok") {
session()->put('token', $data);
return redirect('/user-detail');
// return view('user.profile')->with(compact('data'));
} else {
return response()->json([
'success' => false,
'message' => 'Invalid Email or Password',
], 401);
}
}
我从登录页面收到数据。好吧,没问题
然后使用会话中的数据重定向另一个类
public function getAuthUser(Request $request)
{
$data = $request->session()->all();
return view('user.profile')->with(compact('data'));
} //getAuthUser
工作正常
路由文件
web.php
Route::get('login', 'ApiController@loginForm')->name('show.login');
Route::post('login', 'ApiController@loginData')->name('login');
Route::post('password', 'ApiController@passwordChange')->name('password.request');
当我使用
Route::group(['middleware' => ['auth:api']], function () {
Route::get('user-detail', 'ApiController@getAuthUser')->name('user.profile');
});
我收到419错误页面