要用我華電SSO必先安裝客戶端
composer require hwacom/client-sso
Composer安裝完後要需要修改 config/app.php
找到 providers 區域並添加:
\Hwacom\SSO\SSOServiceProvider::class,
用下列指定會建立sso.php設定檔,需要在 .env
檔案中增加設定.
php artisan vendor:publish
下列設定會自動增加在 config/sso.php
'sso_enable' => env('SSO_ENABLE',false),
'client_secret' => env("SSO_CLIENT_SECRET"),
'callback' => env("SSO_CLIENT_CALLBACK"),
'sso_host' => env("SSO_HOST")
在.env
中增加設定
SSO_ENABLE = true
SSO_HOST = http://test.eip.hwacom.com:8000
SSO_CLIENT_SECRET = ELg5TA5b5JTEJUCdDGoRo0mZIKQe1EuoF8W6ytvP
SSO_CLIENT_CALLBACK = http://test.crm.hwacom.com:8080/callback
Login
/**
* 登入頁面置換,需自行寫入LoginController中
* Laravel7 Function Name 改為 showLoginForm
*/
public function create()
{
if (config('sso.sso_enable') === true ) {
setcookie("callback", config('sso.callback'), 0, "/", '.hwacom.com');
return redirect(config("sso.sso_host") . "/google/auth");
}
return view('auth.login');
}
Logout
/**
* 登出用需自行寫入LoginController中
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
public function destroy(Request $request)
{
if (config('sso.sso_enable') === true ) {
setcookie("token", "", time() - 3600, '/', '.hwacom.com');
}
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect(config("sso.sso_host"));
}
\Hwacom\ClientSso\Middleware\SSOAuthenticated::class,