我正在创建一个保姆预约系统。预订24小时后,我将发送一封电子邮件给家长用户,以审查保姆。我想发送一个url给家长用户,以便当他点击它,他可以审查保姆。除了URL之外,其他所有内容都正常工作。网址必须在24小时内到期。我知道我必须在url中传递令牌,但是我应该如何处理数据库设计呢?如何根据令牌过期URL?
如有任何建议,将不胜感激。
发布于 2017-11-10 09:32:09
假设您有一个预订表,它至少需要以下字段
ID, user_id, nanny_id, created_at或者类似的地方,user_id是“父用户”,nanny_id指的是被预订的保姆。在这种情况下,可以使用created_at字段来确定何时进行预订。您可以将特定的链接发送到父服务器,包括booking_id。
Route::get('/review/{booking_id}', ['uses' => 'BookingController@review', 'as' => 'booking.review']);然后在控制器中,您可以简单地:
public function review($booking_id)
{
$booking = Booking::find($booking_id);
if (Carbon::now()->greaterThan($booking->created_at->addDay())) {
// the booking is more than 24 hours ago
return "sorry you cannot review anymore.";
}
return "Please review the Nanny";
}当然,如果您需要更灵活的链接,那么只为可能有不同过期时间的特定操作设置一个额外的表可能是有意义的。
发布于 2017-11-10 09:33:28
我认为在某些URL中传递令牌是一个很好的解决方案。您可以为令牌创建一个模型(也可以是一个表),在这里指定令牌的创建日期、到期日期和状态。如果过期日期已经过期,则URL不再可用。
希望这句话能帮助你。
https://stackoverflow.com/questions/47219337
复制相似问题