0
A
回答
1
我不你是這麼認爲的。這就是爲什麼當我創建我的用戶時,我生成一個隨機密碼。
$ user-> password = str_shuffle(「Random_Password」); //生成隨機初始密碼
0
我之前通過黑客篡改了Laravel的「忘記密碼」功能(而不是重新發明輪子)。我不能說有多好這個融入哨兵但它是非常容易的做到在普通的舊Laravel:
- 創建一個空密碼
- 用戶手動添加一個條目的密碼提示表(唐不會使用Auth ::提醒或任何它,因爲它會發送電子郵件,但請使用該類的代碼生成令牌)
- 發送歡迎電子郵件給用戶,並鏈接到/ user/confirm(或任何,重點是它不必是/用戶/忘記密碼),並以正常的方式掛鉤該路由爲忘記密碼添加檢查$ user->密碼=='',如果你想確保只有未經證實的人可以去那個頁面(並不是真的無聊TER值)。
您可能還希望擴大在忘記密碼的超時,或者像我一樣(正確哈克,我知道),當用戶在/user/confirm
版本被遺忘的密碼功能,只需刷新超時的表在通過Laravel的驗證系統進行檢查之前。
我們的代碼是這樣的:
上註冊:
// however you register the user:
$user = new User;
$user->email = Input::get('email');
$user->password = '';
$user->save();
// create a reminder entry for the user
$reminderRepo = App::make('auth.reminder.repository');
$reminderRepo->create($user);
Mail::send(
'emails.registered',
[
'token' => $reminder->token,
],
function ($message) use ($user) {
$message->to($user->email)->setSubject(Lang::get('account.email.registered.subject', ['name' => $user->name]));
}
);
現在確認鏈接:
class AccountController extends Controller
{
public function confirm($token)
{
$reminder = DB::table('password_reminders')->whereToken($token)->first();
if (! $reminder) {
App::abort(404);
}
// reset reminder date to now to keep it fresh
DB::table('password_reminders')->whereToken($token)->update(['created_at' => Carbon\Carbon::now()]);
// send token to view but also email so they don't have to type it in (with password reminders it's is a good thing to make users type it, but with confirm account it feels weird)
return View::make('account.confirm-account')->withToken($token)->withEmail($reminder->email);
}
public function postConfirm($token)
{
$credentials = Input::only('email', 'password', 'password_confirmation', 'token');
$response = Password::reset($credentials, function ($user, $password) {
$user->password = $password;
$user->save();
});
switch ($response) {
case Password::INVALID_PASSWORD:
case Password::INVALID_TOKEN:
case Password::INVALID_USER:
return Redirect::back()->withInput()->with('message-error', Lang::get($response));
case Password::PASSWORD_RESET:
Auth::login(User::whereEmail(Input::get('email'))->first());
return Redirect::route('account.home')->with('message-info', Lang::get('messages.confirm_account.succeeded'));
}
}
相關問題
- 1. 註冊FuelPHP Sentry插入組
- 2. 註冊用戶和未註冊用戶
- 3. 如何更改Cartalyst Sentry 2 cookie名稱?
- 4. 註冊後註冊用戶
- 5. Laravel 4與Cartalyst \ Sentry,提供通用接口
- 6. 商店註冊用戶和非註冊用戶付款
- 7. Virtuemart 2.0和用戶註冊
- 8. 註冊用戶?
- 9. 註冊用戶
- 10. 用PHP註冊MySQL的用戶註冊
- 11. 用Javascript註冊用戶註冊登錄
- 12. 在Laravel 4上安裝了Cartalyst Sentry - 缺少src文件
- 13. 如何在laravel 4/cartalyst sentry中調試插入異常
- 14. Laravel 4 - Cartalyst Sentry - 數據庫遷移沒有文件或目錄
- 15. 註冊頁面沒有註冊用戶
- 16. WordPress註冊與用戶註冊分離
- 17. 用戶註冊(註冊)的Wordpress REST API
- 18. 用戶註冊註冊錯誤
- 19. Grails Spring Security註冊/註冊用戶
- 20. 創建註冊註冊 - 新手用戶
- 21. Rails 3和Devise:如何在註冊頁面註冊一個帳戶和用戶?
- 22. 用Laravel和Sentry更新用戶信息
- 23. 註冊用戶:CreateUserWizardStep
- 24. Python用戶註冊
- 25. 註冊新用戶
- 26. Android用戶註冊
- 27. 從用戶註冊
- 28. CouchApp用戶註冊
- 29. IdentityServer3用戶註冊
- 30. 用戶註冊類
是啊,也許這是最好的解決辦法,但我問:) – Kolesar