SymbaX / symbax

日本工学院専門学校 IS14 卒業制作
https://symbax.net/
1 stars 0 forks source link

[Fix]: 他人が自分のメールアドレスで登録した場合どうする #216

Closed ENDOTAKUMI closed 1 year ago

ENDOTAKUMI commented 1 year ago

目的

カレッジ・学科を登録されてしまっているため ユーザー側では変更できない...

タスクリスト

参考

No response

留意事項

No response

検討事項

No response

github-actions[bot] commented 1 year ago

このIssueは、7日間活動がありません。もし、対応しない問題であればCloseしてください。

ENDOTAKUMI commented 1 year ago

ChatGPTに聞いてみた、出来るかは分からん

そのような場合には、未検証のメールアドレスを持つユーザーアカウントを一定期間後に削除する仕組みを導入することが考えられます。

Laravelにはタスクスケジューリングという機能があり、これを使って定期的にデータベースをチェックし、メールアドレスの検証が完了していないユーザーを削除するという処理を実行することができます。

以下にその一例を示します:

まず、App\Console\Kernel.phpファイル内の schedule メソッドに次のようなコードを追加します:

php Copy code

$schedule->call(function () {
    User::where('email_verified_at', null)
        ->where('created_at', '<', now()->subDay())
        ->delete();
})->daily();

このコードは、毎日一度、ユーザーテーブルを確認し、メールアドレスが未検証(email_verified_atがnull)で、かつ作成から24時間以上経過したユーザーアカウントを削除します。

このスクリプトはLaravelのタスクスケジューラーを使用していますので、この機能が正しく動作するためには、サーバーのcron設定でLaravelのタスクスケジューラーが定期的に実行されるように設定する必要があります。

以下はその設定例です:

bash Copy code

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

以上の設定を行うことで、他人があなたのメールアドレスで登録した場合でも、メールの検証を完了せずに24時間以上放置したアカウントは自動的に削除され、あなたのメールアドレスで再度登録することが可能になります。

ENDOTAKUMI commented 1 year ago

3時に消えてるからいいのか