Laravel Auth::login



在我的应用程序上,我正在使用来自 Steam API 的登录名。

当用户在 Steam 上进行身份验证时,如果数据库中不存在该用户,该应用程序会创建一个新用户,否则他会带来用户数据。

在这个过程中,即使我创建或只选择用户信息,我也从用户那里得到一个数组,我执行 Auth::login($user, true(; .

在这个函数上它可以工作,如果我调试 Auth::user((,他会正确返回。

在视图上,我也可以使用 Auth::guest(( 并且它可以工作。

但是如果我转到另一个页面,只有登录用户才能加入,Auth::guest(( 返回 true,Auth::check(( 返回 false,Auth::user(( 返回 NULL...(在控制器上(。

如何访问新控制器上的身份验证方法?

身份验证失败的控制器:

<?php
namespace AppHttpControllersProfile;
use IlluminateHttpRequest;
use AppHttpControllersController;
use AppUser;
use Auth;
class ProfileController extends Controller
{
public function __construct()
{
if(Auth::guest()) {
return redirect()->route('home');
}
}
public function index()
{
// die(var_dump(Auth::user()->id));
return view('pages/profile/profile');
}
}

由于 Larawel 的架构,如果直接从控制器的构造调用,Auth::user()将始终返回null

相反,您应该引用"auth"中间件,如下所示:

class ProfileController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
...

相关内容

  • 没有找到相关文章

最新更新