如何解决使用laravel护照成功登录后如何认证我的laravel网页
我创建了带有护照认证功能的laravel API。我有以下可以正常使用的前端登录。
<script type="text/javascript">
$("#loginfrm").on("submit",function(event){
event.preventDefault();
var username = $("#username").val();
var password = $("#password").val();
var dcookie = document.cookie;
$.ajax({
type: "POST",url: "http://api-auth.test/api/auth/login",headers: {
"X-CSRF-TOKEN" : '{{ csrf_token() }}',"Authorization": "Bearer " + "{{ Cookie::get('laravel_token') }}",},data:{
"_token": "{{ csrf_token() }}","username": username,"password": password
},complete: function (data) {
if (data.responseJSON["authstat"] == "Authorized")
{
window.location.href = "http://api-auth.test/employees";
}
else
{
alert(data.responseJSON["authstat"]);
}
}
});
});
</script>
还有我的API routes/api.php
:
Route::prefix('auth')->group(function(){
Route::post('/register','AuthController@register');
Route::post('/login','AuthController@login');
});
使用我自己的api:
我的问题是,当我的应用程序重定向到"http://api-auth.test/employees"
时,该页面并未真正通过身份验证。以下是我的routes/web.php
:
Route::get('/inbox',function () {
return view('pages.employees');
});
然后,我尝试将路由封装为在stackoverflow中搜索的内容:
Route::group(['middleware' => 'auth:api'],function () {
Route::get('/inbox',function () {
return view('pages.employees');
});
});
它返回一个错误:
Symfony\Component\Routing\Exception\RouteNotFoundException
Route [login] not defined.
我发现错误发生在Middleware/Authenticate.php
中,我不知道该怎么办。
protected function redirectTo($request)
{
if (!($request->expectsJson())) {
return route('login');
}
}
我只想在Employee列表重定向到http://api-auth.test/employees
以进行测试时显示。这是我的EmployeeController
:
public function index()
{
$employee = Employee::all();
return response()->json([
"success" => true,"message" => "Employee List","data" => $employee
]);
}
有帮助吗?谢谢。
解决方法
您需要应用“ auth”中间件而不是“ auth:api”
Route::group(['middleware' => 'auth'],function () {
Route::get('/inbox',function () {
return view('pages.employees');
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。