Laravel 7记住我的功能是否正确

时间:2020-03-29 02:56:14

标签: php laravel

我在互联网上搜索了如何创建“记住我”功能。

我找到了这种方法并尝试了它,但是我不确定这是否是一种好方法。

这是“记住我”功能的好方法吗?

  1. Mysql表添加
import time
from django.shortcuts import render
from django.core.files.storage import FileSystemStorage
from django.core.mail import send_mail


def My_Upload(request):
    if request.method=="POST":
        uploaded_file = request.FILES['document']
        fs = FileSystemStorage()
        name = fs.save(name=uploaded_file.name,content=uploaded_file)
        context = {'Name':name}
        #function
        return render(request,'my_app/homepage.html',context=context)
    return render(request,'my_app/upload.html',)

def send_email_to(filename=None):
    foo(filename)
    send_mail("Your file is ready", "Here is your file", 'example@gmail.com', 
        ['1234@gmail.com'],fail_silently=False)

def foo(filename):
    #run some math on the file
    #creates a f'{filename}_done.csv'
    time.sleep(300)
    pass
  1. signin.blade.php

我已将此添加到signin.blade.php

remember_token / VAR_CHAR 255

3. AcountController.php登录部分

我已将此添加到AccountController.php

<input type="checkbox" name="remember_token" id="remember_token"> 
<label style="position:relative; top: 5px;" for="remember">Remember me</label>
$remember_token = ($request->has('remember_token')) ? true : false;

4. AccountController.php注册部分

在注册部分添加“ remember_token => 0”

我们添加了此内容,因此他们注册时不会出现错误

        if($validator->fails()){
            return Redirect::route('account-sign-in')
                   ->withErrors($validator)
                   ->withInput();
        }else{

            $remember_token = ($request->has('remember_token')) ? true : false; // add

            $auth = Auth::attempt(array(
                'email'     => $request->input('email'),
                'password'  => $request->input('password'),
                'active'    => 1
            ),$remember_token); // add

            if($auth){
                return Redirect::intended('/');
            }else{
                return Redirect::route('account-sign-in')
                       ->with('global','Email/Password');
            }
        }
            return Redirect::route('account-sign-in')
                   ->with('global','Your account has not been activated');
    }

5. User.php

我已将Remember_token添加到User.php

              $user= User::create(array(
                'email'    => $email,
                'username' => $username,
                'password' => \Hash::make($password),
                'code'     => $code,
                'active'   => 0,
                'remember_token' => 0
            ));

1 个答案:

答案 0 :(得分:0)

使用方法还可以,但您也可以简单地使用

  <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>