Reactjs 如何检查用户是否为';登录';在使用laravel身份验证时在react组件中?
我已经在我的网站上设置了laravel身份验证。它工作得很好,但我想知道如何在react组件中检查用户是否登录并显示其特定内容。我用来解决检查用户是否登录问题的一种方法是将其作为“全局数据”附加到主刀片文件中。首先设置控制器Reactjs 如何检查用户是否为';登录';在使用laravel身份验证时在react组件中?,reactjs,laravel,Reactjs,Laravel,我已经在我的网站上设置了laravel身份验证。它工作得很好,但我想知道如何在react组件中检查用户是否登录并显示其特定内容。我用来解决检查用户是否登录问题的一种方法是将其作为“全局数据”附加到主刀片文件中。首先设置控制器 public function index() { return view('welcome')->with(["globalData" => collect([ 'user' => Auth::user()
public function index()
{
return view('welcome')->with(["globalData" => collect([
'user' => Auth::user()
]);
}
然后在你的根刀片文件中
<script>
let globalData = "{!! $globalData->toJson() !!}";
</script>
看法
嘿,我尝试了这个方法,但是它显示了未定义的变量globalData。我将代码格式化为:let globalData=“{!!$globalData->toJson()!!}”;和公共函数索引(){return view('welcome')->with([$globalData=>collect(['user'=>Auth::user()]);}如果我注释掉根刀片文件中的脚本标记,则没有错误。格式正确,我会编辑它。您应该很好,只需在控制器中将$globalData替换为'globalData'。看到我提供的示例中的差异了吗?它是字符串而不是变量?太棒了!我更喜欢前端独立的react代码,使用LocalStorage存储身份验证代码,但我不知道刀片解决方案。感谢you@Anders非常感谢。一旦我理清了路线,这就行了。我可以通过打印{{$globalData}}来获取视图页面上的globalData,但当我在任何组件中键入globalData时,它会显示未定义。我是否需要将其传入构造函数并从该变量加载数据?
class GuiController extends Controller
{
public function __construct() {
$this->data = [
'projects' => $this->projects(),
'packs' => Pack::all(),
'stimpack_io_token' => env('STIMPACK_IO_TOKEN'),
'stimpack_data_url' => env('STIMPACK_DATA_URL'),
'manipulatorData' => ManipulatorController::attachStartupData()
];
}
public function index()
{
return view('welcome')->with(["data" => collect($this->data)]);
}
<body>
<div id="main"></div>
<script>
let data = {!! $data->toJson() !!};
</script>
<script src="{{asset('js/app.js')}}" ></script>
</body>
upload() {
var compiler = new Compiler(this.props.engine);
var compiled = compiler.compile();
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("stimpack-io-token", data.stimpack_io_token);
},