【发布时间】:2019-01-07 22:03:53
【问题描述】:
我使用 Laravel、Vue.js 和 MongoDB 创建了一个 Web 应用程序,我确实以这种方式登录,
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Hash;
use App\User;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|between:6,25'
]);
$user = User::where('email', $request->email)
->first();
if($user && Hash::check($request->password, $user->password)) {
// generate new api token
$user->api_token = str_random(60);
$user->save();
Auth::login($user, $remember = true);
return response()
->json([
'authenticated' => true,
'api_token' => $user->api_token,
'user_id' => $user->_id,
'name' => $user->name
]);
}
return response()
->json([
'email' => ['Provided email and password does not match!']
], 422);
}
现在,当我尝试从其他控制器中的 Auth::user() 或 $request->user() 获取经过身份验证的用户时,我得到了 null。我想我应该使用 token_api 从数据库中检索用户,但我认为这不安全。不过,我刚开始学习 Laravel 和 Vue.js,如果有更好的方法,我将不胜感激。
【问题讨论】:
标签: laravel vue.js laravel-5.2