hwacom / eip-login
EIP Login Package
v1.1.4
2023-10-17 07:23 UTC
Requires
- hwacom/client-sso: ^2.5
- hwacom/personnel-info: ^1.0
README
安裝說明
composer require hwacom/eip-login
需提前安裝並設定的套件
laravel/breeze
php artisan breeze:install
npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
npm install
npm run dev
php artisan migrate
SSO 登入
hwacom/client-sso
人員資料 HRepository
hwacom/personnel-info
Service Provider設定 (Laravel 5.5^ 會自動掛載)
Composer安裝完後要需要修改 config/app.php
找到 providers 區域並添加:
\Hwacom\EIPLogin\EIPLoginServiceProvider::class,
Config設定檔發佈
用下列指令會建立eip.php設定檔,需要在 .env
檔案中增加設定, 同時建立出eip_login語系檔
php artisan vendor:publish
下列設定會自動增加在 config/eip.php
'eip_auth' => env('EIP_AUTH', false), 'eip_url' => env('EIP_URL'), 'JWT_EXP' => env('JWT_EXP', 900), 'CLIENT_SECRET' => env('EIP_CLIENT_SECRET'), 'COOKIE_DOMAIN' => env('COOKIE_DOMAIN'), 'model' => App\Models\User::class,
在.env
中增加設定
EIP_AUTH = true EIP_URL = EIP_CLIENT_SECRET = COOKIE_DOMAIN =
[LoginController] 增加兩個Function
use Hwacom\EIPLogin\Services\EIPLoginService;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
public function __construct()
{
$this->loginService = new EIPLoginService();
}
增加function
public function username()
{
return 'enumber'; //帳號欄位名
}
Login
/**
* 進入login前function 判斷走login/loginEIP
*
*/
public function store()
{
if (config('eip.eip_auth')) { //EIP登入
$data = [
'ip' => $request->ip(),
'username' => $request->enumber,
'password' => $request->password,
];
$this->loginService->loginEIP($data);
$path = Session::get('redirect) ?? '/';
$request->session()->regenerate();
return redirect($path);
} else {
$this->login($request); //一般登入
$request->session()->regenerate();
return redirect()->intended(RouteServiceProvider::HOME);
}
}
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();
setcookie("token", "", time() - 3600, '/', config('eip.COOKIE_DOMAIN'));
return redirect(config("sso.sso_host"));
}
[LoginRequest] 調整rules
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
if (!config('eip.eip_auth')) {
return [
'enumber' => 'required|string',
'password' => 'required|string',
];
} else {
return [];
}
}
[login.blade] 調整
帳號input調整
<div>
<x-label for="enumber" :value="__('工號')" />
<x-input id="enumber" class="block mt-1 w-full" type="text" name="enumber" :value="old('enumber')" required autofocus />
</div>