Laravel - 在 Rest API 中 Laravel Socialite Login 中会话的替代方案

问题描述

我是 Laravel Socialite Login 的新手。在我的 Laravel-8 应用程序中,我使用了:

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

用于 Azure Socialite 登录,适用于多公司登录。我将公司 ID 存储在 Session 中。

public function getCompanies() {
    $current_domain = request()->getHost(); // your company app name
    $domain = explode('.',$current_domain);
    return OrgCompany::where('subdomain',$domain[0])->firstOrFail();
}

public function redirectToProvider(Request $request,OrgSocialiteSetting $azureCredential)
{
    $companies = $this->getCompanies();
    if($companies){
        $company_credentials = OrgSocialiteSetting::where('id',$companies->id)->first();
        //when switching between different API Credentials
        config(['services.azure.client_id' => $company_credentials->client_id]);
        config(['services.azure.client_secret' => $company_credentials->client_secret]);
        config(['services.azure.redirect' => $company_credentials->client_redirect]);

        session(['id' => $request['company']]);
        return Socialite::with('azure')->redirect();
    }
    return back()->with('status','Please select a Valid company');
}

现在我想将相同的代码转换为 Laravel Rest API,从而在 Angular-10 中使用它

我正在使用 Laravel-Passport 和 LaravelSocialite,如上所示。

既然不再用Session了,那我现在怎么处理

session(['id' => $request['company']]);

在上面的代码中?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)