パスワード再発行依頼
このコミットが含まれているのは:
コミット
992390fa78
|
@ -112,8 +112,56 @@ class ChildrenController extends Controller {
|
||||||
// 本登録に成功
|
// 本登録に成功
|
||||||
return ['status_code' => 200, 'success_messages' => ['本登録に成功しました。'], 'params' => ['tel' => $r->tel, 'password' => $password]];
|
return ['status_code' => 200, 'success_messages' => ['本登録に成功しました。'], 'params' => ['tel' => $r->tel, 'password' => $password]];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function requestPassword () {}
|
public function requestPassword (Request $r) {
|
||||||
|
$validate = Validator::make($r->all(), [
|
||||||
|
'tel' => 'required|numeric|digits_between:0,99999999999|starts_with:0',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validate->fails()) {
|
||||||
|
// バリデーションエラー
|
||||||
|
return ['status_code' => 422, 'error_messages' => $validate->errors()];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result = Child::select('id')->where('tel', $r->tel)->first()) {
|
||||||
|
// メールアドレス照合に失敗
|
||||||
|
return ['status_code' => 400, 'error_messages' => ['電話番号が未登録です。入力した情報を確認してください。']];
|
||||||
|
}
|
||||||
|
|
||||||
|
$token = bin2hex(random_bytes(16));
|
||||||
|
$create = [
|
||||||
|
'type' => 1,
|
||||||
|
'child_id' => $result->id,
|
||||||
|
'tel' => $r->tel,
|
||||||
|
'token' => $token,
|
||||||
|
'ttl' => date('Y-m-d H:i:s', time()+28800)
|
||||||
|
];
|
||||||
|
|
||||||
|
try {
|
||||||
|
// DBに入ります。
|
||||||
|
TelActivation::create($create);
|
||||||
|
|
||||||
|
// SMSを送ります。
|
||||||
|
// TODO
|
||||||
|
// SMSの送信に失敗
|
||||||
|
// [
|
||||||
|
// 'status_code' => 401,
|
||||||
|
// 'error_messages' => ['SMSの送信に失敗しました。電話番号が使用できるか確認してださい。'],
|
||||||
|
// ]
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// 失敗
|
||||||
|
Log::critical($e->getMessage());
|
||||||
|
return ['status_code' => 400, 'error_messages' => '電話番号が未登録です。入力した情報を確認してください。'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = [
|
||||||
|
'id' => $result->id,
|
||||||
|
'tel' => $r->tel,
|
||||||
|
];
|
||||||
|
|
||||||
|
// メールアドレス照合に成功
|
||||||
|
return ['status_code' => 200, 'params' => $params, 'success_messages' => ['再発行用パスワードの送信に成功しました。']];
|
||||||
|
}
|
||||||
|
|
||||||
public function search (Request $r) {
|
public function search (Request $r) {
|
||||||
if (!isset($r->keyword)) {
|
if (!isset($r->keyword)) {
|
||||||
|
|
|
@ -27,7 +27,50 @@ class FathersController extends Controller {
|
||||||
return new \App\Models\Father();
|
return new \App\Models\Father();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function requestPassword () {}
|
public function requestPassword (Request $r) {
|
||||||
|
$validate = Validator::make($r->all(), [
|
||||||
|
'email' => 'required|max:255|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validate->fails()) {
|
||||||
|
// バリデーションエラー
|
||||||
|
return ['status_code' => 422, 'error_messages' => $validate->errors()];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result = Father::select('id')->where('email', $r->email)->first()) {
|
||||||
|
// メールアドレス照合に失敗
|
||||||
|
return ['status_code' => 400, 'error_messages' => ['メールアドレスが未登録です。入力した情報を確認してください。']];
|
||||||
|
}
|
||||||
|
|
||||||
|
$token = bin2hex(random_bytes(16));
|
||||||
|
$create = [
|
||||||
|
'type' => 1,
|
||||||
|
'father_id' => $result->id,
|
||||||
|
'email' => $r->email,
|
||||||
|
'token' => $token,
|
||||||
|
'ttl' => date('Y-m-d H:i:s', time()+28800)
|
||||||
|
];
|
||||||
|
|
||||||
|
try {
|
||||||
|
// DBに入ります。
|
||||||
|
EmailActivation::create($create);
|
||||||
|
|
||||||
|
// メールを送ります。
|
||||||
|
Mail::to($r->email)->send(new FathersRegistrationTemporaryMail($token));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// 失敗
|
||||||
|
Log::critical($e->getMessage());
|
||||||
|
return ['status_code' => 400, 'error_messages' => 'メールアドレスが未登録です。入力した情報を確認してください。'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = [
|
||||||
|
'id' => $result->id,
|
||||||
|
'email' => $r->email,
|
||||||
|
];
|
||||||
|
|
||||||
|
// メールアドレス照合に成功
|
||||||
|
return ['status_code' => 200, 'params' => $params, 'success_messages' => ['再発行用パスワードの送信に成功しました。']];
|
||||||
|
}
|
||||||
|
|
||||||
public function registerTemporary (Request $r) {
|
public function registerTemporary (Request $r) {
|
||||||
$validate = Validator::make($r->all(), [
|
$validate = Validator::make($r->all(), [
|
||||||
|
|
|
@ -135,8 +135,8 @@ Route::group(['prefix' => 'fathers'], function () {
|
||||||
Route::group(['prefix' => 'children'], function () {
|
Route::group(['prefix' => 'children'], function () {
|
||||||
Route::post('/registerTemporary', '\App\Http\Controllers\Api\ChildrenController@registerTemporary')->name('childrenregistertemporary');
|
Route::post('/registerTemporary', '\App\Http\Controllers\Api\ChildrenController@registerTemporary')->name('childrenregistertemporary');
|
||||||
Route::post('/registerMain', '\App\Http\Controllers\Api\ChildrenController@registerMain')->name('childrenregistermain');
|
Route::post('/registerMain', '\App\Http\Controllers\Api\ChildrenController@registerMain')->name('childrenregistermain');
|
||||||
// Route::post('/requestPassword', '\App\Http\Controllers\Api\ChildrenController@requestPassword')->name('childrenrequestpassword');
|
Route::post('/requestPassword', '\App\Http\Controllers\Api\ChildrenController@requestPassword')->name('childrenrequestpassword');
|
||||||
// Route::post('/login', '\App\Http\Controllers\Api\ChildrenController@login')->name('childrenlogin');
|
Route::post('/login', '\App\Http\Controllers\Api\ChildrenController@login')->name('childrenlogin');
|
||||||
|
|
||||||
Route::group(['middleware' => 'auth:children'], function () {
|
Route::group(['middleware' => 'auth:children'], function () {
|
||||||
Route::get('/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail');
|
Route::get('/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail');
|
||||||
|
|
新しいイシューから参照