微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel - 使用单个 DB

如何解决Laravel - 使用单个 DB

在我的 Laravel-5.8 中,我使用的是 Azure Socialite 登录

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $redirectTo = '/dashboard';
    protected $username = 'username';

    public function redirectToProvider()
    {
        return Socialite::with('azure')->redirect();
    }

    public function handleProviderCallback()
    {
         $azureUser = Socialite::with('azure')->user();
        try 
        {
            $user = User::where('email',$azureUser->email)->orWhere('username',$azureUser->user['mailNickname'])->first();
            if($user)
            {
                if(Auth::loginUsingId($user->id))
                {
                    $user->update([
                         'last_login_at' => Now(),]);
                   return redirect()->intended('/dashboard');
                }
            }
        } 
        catch(\Exception $e) 
        {
            session()->flash("error","Authentication Failed,kindly contact the Administrator!");
            return redirect(route('login'));
        }
    }   
}


'azure' => [
   'client_id' => env('AZURE_KEY','mykey'),'client_secret' => env('AZURE_SECRET','myazuresecret'),'redirect' => env('AZURE_REDIRECT_URI','https://myapp/login/azure/callback')
],

这是有效的,它使用:https://myapp.com

但我现在被要求使用单个数据库使其成为多公司应用程序。有一张公司表,每张表都有 company_id

每个都有这个网址:

https://myapp.com   
https://company1.myapp.com
https://company2.myapp.com

我现在有这些表:

class Company extends Model
{
  protected $table = 'companies';
  protected $fillable = [
            'id','company_name','subdomain',];
}

从公司表中,子域为空则为 https://myapp.com ,而子域字段可以是 company1 或 company2 等。

class User extends Authenticatable
{
   protected $fillable = [
    'name','email','company_id','password',];
}

问题是关于 azure url 重定向

'redirect' => env('AZURE_REDIRECT_URI','https://myapp/login/azure/callback')

因为它重定向到主域 myapp。

这会对 company1.myapp.com 和 company2.myapp 产生什么影响?

如何让它也重定向到子域?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。