我有两个控制器; AuthController
和CheckoutController
现在我AuthController
处理用户登录和注册记忆,当用户登录我能够自己user_id
从AuthController
检查他们的身份登录并获得。无法获得Auth :: user() - > id
然而,当我尝试做这在我CheckoutController
我一直有Auth::user()->id
返回此错误:
Trying to get property of non-object
。
无论我做什么它总是相同的,我已经在网上寻找解决方案,但还没有找到任何关于此的。
我刚刚意识到的东西,虽然,我AuthController
和CheckoutController
在2不同的命名空间,我想知道,这可能是原因/理由。
这是我的登录代码:
/**
* Handle a login request to the application.
*
* @param LoginRequest $request`
* @return Response
*/
public function postLogin(LoginRequest $request)
{
$credentials = $request->only('email', 'password');
try {
// verify the credentials and create a token for the user
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json(['code' => 300, 'message' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
// something went wrong
return response()->json(['error' => 'could_not_create_token'], 500);
}
$url_parts = parse_url($request->url());
$host_parts = explode('.', $url_parts['host']);
if ($host_parts[0] == "admin")
{
$user = User::find(Auth::user()->id);
if (!$user->is('administrator'))
{
Auth::logout();
return response()->json(['error' => 'You Are Not Authorized!']);
}
}
// if no errors are encountered we can return a JWT
return response()->json(compact('token'));
}
请从'AuthController'和'CheckoutController'发布你指的代码。 – Bogdan
如果您使用的是Laravel的默认身份验证,在其他名称空间中,只需使用\ Auth :: user() - > id确保用户也已登录 –
好吧,我已经添加了我的登录代码。 – user3718908