使用 jwt auth on flutter 注册后的电子邮件验证

时间:2021-03-16 09:56:24

标签: laravel api flutter

我已经成功编码了注册功能及其工作,但我不知道如何在注册成功后发送电子邮件确认链接。因为我使用 JWT Auth 登录并使用 Laravel API 从 Flutter 应用程序注册。

我的登录代码是:

public function loginapi(Request $request)
    {
        $input = $request->only('email', 'password');
        $email = $request->email;
        $jwt_token = null;
        if (!$jwt_token = JWTAuth::attempt($input)) {
            return response()->json([
                'success' => false,
                'message' => 'Invalid Email or Password',
            ]);
        }
        // get the user 
        $user = getuserbyemail($email);
        $user_ver_status = $user->email_verified_at;
        
        $verified;
        if($user_ver_status != null || $user_ver_status != ''){
            $verified = true;
        }
        else{
            $verified = false;
        }
        return response()->json([
            'success' => true,
            'varified' => $verified,
            'token' => $jwt_token,
            'users' => $user
        ]);
    }

我的注册码是:

public function registerapi(Request $request)
    {   
        $sponsor = $request->sponsor;
        $username = $request->username;
        $email = $request->email;
        //$phone = $request->phone;
        $password = $request->password;
        
        $getemail = getuserbyemail($email);
        $getusern = getuserbyusername($username);
        //$getphone = getuserbyphone($phone);
        $getSponsor = getuserbySponsor($sponsor);
        if($getSponsor == null ||$getSponsor == ''){
            return response()->json([
                'success' => false,
                'message' => 'Sponsor user dose not found...!',
            ], 401);
        }
        else if($getemail != null){
            return response()->json([
                'success' => false,
                'message' => 'Email is already existed...!',
            ], 401);
        }
        else if($getusern != null){
            return response()->json([
                'success' => false,
                'message' => 'Username is already existed...!',
            ], 401);
        }
        else{
            $insertuser = insertUser($getSponsor->id, $username, $email, $password);
                        
            if($insertuser == "true"){
                return response()->json([
                    'success' => true,
                    'message' => 'Your account has been registerd successfully...!',
                ]);
            }
            else if($insertuser == "false"){
                return response()->json([
                    'success' => false,
                    'message' => 'There is an error while regestring your account...!',
                ]);
            }
            else{
                return response()->json([
                    'success' => false,
                    'message' => 'There is an UnKnown error while regestring your account...!',
                ]);
            }
        }
    }

这是我的 insertUser() 函数:

function insertUser(string $sponsor, string $username, string $email, string $password){
        $time_now = date("Y-m-d H:i:s");
        $updated_at = $time_now;
        $created_at = $time_now;
        
        $sponsor_id = $sponsor;
        $user_name = $username;
        $user_email = $email;
        //$user_phone = $phone;
        $user_password = $password;
        
        $createUser = User::create([
            'sponsor_id' => $sponsor,
            'user_name' => $user_name,
            'email' => $user_email,
            'phone' => null,
            'earning' => 0,
            'balance' => 0,
            'city' => null,
            'country' => null,
            'image' => null,
            'status' => 1,
            'password' => Hash::make($user_password),
        ]);
        if($createUser){
            return "true";
        }
        else{
            return "false";
        }
        
    }

注册成功但没有通过电子邮件发送验证链接。我怎样才能做到这一点?

更新问题:

I am using Laravel 8 version

0 个答案:

没有答案