kullar84/mobileid

Estonian MobileID身份提供者,用于Laravel

安装: 22

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 1

开放问题: 0

类型:软件包

0.2 2018-01-16 21:54 UTC

This package is auto-updated.

Last update: 2024-09-24 19:39:41 UTC


README

Laravel移动ID身份验证

安装

composer require kullar84/mobileid

该软件包现已安装。如果您使用的是Laravel版本 < 5.5,请将以下行添加到您的config/app.php提供者部分

kullar84\mobileid\MobileIDServiceProvider::class,

在Kernel.php中创建新的中间件组

protected $middlewareGroups = [
        'session' => [
            \Illuminate\Session\Middleware\StartSession::class,
        ],
    ];

添加使用此中间件的新的路由

Route::group(['middleware' => 'session'], function () {
    Route::post('mlogin', 'AuthController@mlogin')->name('mlogin');
    Route::post('domlogin', 'AuthController@doMLogin')->name('domlogin');
});

创建所需的方法

use kullar84\mobileid\MobileIDAuthenticate;


protected function mlogin(Request $request)
{
	$this->validate(
		$request, [
			'phone' => 'required|numeric|exists:users,phone',
		]
	);

	$phone = $request->input('phone');

	$auth = new MobileIDAuthenticate();

	$response = $auth->startAuth($phone);

	return response()->json($response);
}

protected function doMLogin(Request $request)
{
	//https://www.id.ee/?id=36373
	$auth = new MobileIDAuthenticate();
	$response = $auth->checkAuthStatus();

	if ($response->isError()) {
		return response()->json(['error' => true, 'message' => $response->error]);
	} elseif ($response->isPending()) {
		return response()->json(['pending' => true, 'message' => 'Please wait! You will be redirected shortly']);
	} elseif ($response->isSuccess()) {
		$phone = $request->input('phone');

		$user = User::findUserByPhone($phone);

		if ($user !== null) {
			$token = $user->createToken('Token')->accessToken;

			return $this->respondWithToken($token);
		}
	}

	return response()->json(['message' => 'Unauthorized'], 422);
}