我知道这个问题似乎是多余的,但我无法在任何地方找到解决方案。
我laravel-vujs mix
在同一个项目中使用并集成了 web 路由和 api 路由。
现在,我正在尝试创建一个名为的注册 api 函数registernative
,其中它对用户进行身份验证并返回一些状态代码。
例如
public function registernative(Request $request) {
$user = User::where('email', '=', $request->email)->first();
$response = [];
if(!$user) { //If user not exist, create
try {
$slug = strtolower($request->firstname) . '-' . strtolower($request->lastname) . '-' . time();
$user = new User();
$user->name = $request->firstname . ' ' . $request->lastname;
$user->email = $request->email;
$user->slug = $slug;
$user->password = Hash::make($request->password);
$user->save();
Auth::login($user);
$response = ['status'=>1, 'msg'=>'ok', 'data'=>$user->toArray()];
} catch (Exception $e) {
$response = ['status'=> -1, 'msg'=>'bad', 'data'=>[]];
}
} else { //If exist, login
$response = ['status'=> 0, 'msg'=>'user already exist', 'data'=>[]];
}
return response()->json( $response );
}
现在在我的 vue 组件的注册函数中,我检查了status
从 api 返回的,如果是1
,我必须重定向到默认的仪表板页面。
默认页面inline-template
是这样的(我不知道是否有必要提供它,但无论如何我都会提供它)。
@section('content')
<defaultpage inline-template :user_session_details=" {{ Auth::user() }} ">
<div>
...
...
...
</div>
</defaultpage>
@endsection
我尝试使用window.location.replace('http://localhost/defaultpage');
,但它显示“未经身份验证”。
为什么Auth::login($user)
保存后知道我它是未经身份验证的?
抱歉英语不好,不是母语人士。