簡體   English   中英

使用laravel身份驗證時,如何檢查用戶是否已在“反應”組件中“登錄”?

[英]How do I check if user is 'logged in' in a react component when using laravel authentication?

我在我的網站上設置了laravel身份驗證。 它工作得很好,但我想知道如何檢查用戶是否在反應組件內部登錄並顯示他/她的特定內容。

我用來檢查用戶是否已登錄的問題的一種方法是將其作為“全局數據”附加到主刀片文件中。 首先設置你的控制器。

public function index()
{        
    return view('welcome')->with(["globalData" => collect([
        'user' => Auth::user()
    ]);
}

然后在您的根刀片文件中

<script>
    let globalData = "{!! $globalData->toJson() !!}";
</script>

然后,您可以通過globalData.user來訪問組件中任何位置的用戶屬性,從而測試user是對象還是null / empty。


來自版本為15.4.2的React項目的示例

調節器

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);
        },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM