用户在单击电子邮件中的激活链接后进行更新

时间:2019-05-16 19:54:20

标签: php laravel laravel-5

我有标准的Laravel注册系统。 单击电子邮件中的链接后,我需要为用户更新列启用(enable = 1)。

我的迁移:

public static String[] mySplit(String input) {
    String[] out = new String[(1 + input.length()) / 2];
    for (int i = 0; i < out.length; i++) {
        out[i] = input.substring(i * 2, Math.min(2 + (i * 2), input.length()));
    }
    return out;
}

我该怎么做?默认情况下,用户设置为启用= 0

2 个答案:

答案 0 :(得分:2)

好了,您已经建立了users表,enabled可以正常工作。接下来,您有几种选择,最简单的方法是在注册时触发一封电子邮件,该电子邮件带有沿www.my.site/activate?token=MD5TOKEN的链接,其中md5令牌是他们注册的电子邮件的md5哈希用。然后,当他们点击该路线时将其激活,将其电子邮件哈希并进行比较(如果未登录),请先登录。之后,如果匹配,则将其激活。

另一种方法是创建另一个名为activation_tokens的表,该表存储一封电子邮件和一个随机生成的令牌,您可以重新生成许多令牌以及一个is_used列。

编辑以回答评论:

DB::table('users')
            ->where('email', $email)
            ->update(['enabled' => 1]);

答案 1 :(得分:0)

尝试更改userActive()函数。

  public function userActive(Request $request, User $user) {
        echo "XXXXX".$request->user()->email; 
        $user->update([ 'enable' => 1]); 
        dd($user); // Redirect 
    }