Laravel-Azure AD身份验证将我重定向回登录页面

时间:2020-01-10 12:01:49

标签: laravel azure

我正在使用Laravel-5.8进行用户Azure AD身份验证。我安装了此软件包:

composer require socialiteproviders/microsoft-azure
"socialiteproviders/microsoft-azure": "^3.0",

我也做了配置。来自数据库的常规登录正在完善,但是Laravel microsoft-azure集成存在问题。

登录控制器

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Socialite;

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

public function __construct()
{
  $this->middleware('guest')->except('logout');
}

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

public function handleProviderCallback()
{
  $user = Socialite::with('azure')->user();
}

login.blade

    <form class="login-form" method="POST" action="{{ route('login') }}">
        {{ csrf_field() }}

        <div class=" w3l-form-group{{ $errors->has('email') ? ' has-error' : '' }}">
            <label>Username:</label>
            <div class="group">
                <i class="fas fa-user"></i>
                <input id="email" type="text" class="form-control" name="email" placeholder="Email" required autofocus>
            <div>
            </div>
            </div>
        </div>
        <div>
            @if ($errors->has('email'))
                <span class="help-block" style="color: red">
                    <strong>{{ $errors->first('email') }}</strong>
                </span>
            @endif
        </div>

        <div class=" w3l-form-group{{ $errors->has('password') ? ' has-error' : '' }}">
            <label>Password:</label>
            <div class="group">
                <i class="fas fa-unlock"></i>
                <input id="password" type="password" class="form-control" name="password" placeholder="Password"  required>
                @if ($errors->has('password'))
                    <span class="help-block">
                        <strong>{{ $errors->first('password') }}</strong>
                    </span>
                @endif
            </div>
        </div>
        <button type="submit">Login</button>
        <a href="{{ route('azure.login') }}" class="btn btn-primary"> Azure Login</a>
    </form>

route / web.php

Route::get('login/azure', 'Auth\LoginController@redirectToProvider')->name('azure.login');
Route::get('login/azure/callback', 'Auth\LoginController@handleProviderCallback');
Route::get('/dashboard', 'HomeController@index')->name('dashboard');

config / services

'azure' => [
'client_id' => env('AZURE_KEY'),
'client_secret' => env('AZURE_SECRET'),
'redirect' => env('AZURE_REDIRECT_URI')
],

.env

AZURE_KEY= something
AZURE_SECRET= something
AZURE_REDIRECT_URI= http://localhost:8888/salesportal/dashboard

config / app

\ SocialiteProviders \ Manager \ ServiceProvider :: class,

对于重定向URI,在Azure门户中->应用程序注册->查找应用程序->身份验证

我有

http://localhost:8888/salesportal/dashboard

当我单击“ Azure登录”按钮时,它将我重定向回“登录”页面:

http://localhost:8888/salesportal/login

我该如何解决?

谢谢。

0 个答案:

没有答案