1masoud
5 سال پیش توسط 1masoud مطرح شد
7 پاسخ

پسورد در لاراول

@ali.bayat
جدا از login,registerآماده خود لاراول من خودم ریجستر ساختم و پسورد خود را با bcrypt رمز نگاری کردم زمانی که لاگین می خواهم ایا پسورد وارد شده رو باید bcryptکنم و بعد پسورد خود را با پسورد دیتابیس مقایسه کنم یا برعکس
من هر دو رو انجام دادم نمیشه .منظورم اینکه رمزنگاری میشه اما زمانی که می خوام از رمزنگاری خارج کنم و مقایسه کنم نمیشه


ثبت پرسش جدید
Reza ghz
@rezaghasemzadeh1 5 سال پیش مطرح شد
0

پسورد رمز نگاری شده رو نمیتونید به حالت اول برگردونید
توی لاراول میتونید با Auth::attempt() اینکارو کنید یا برای دستی انجام دادن از تابع paasword_verify()


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

نباید پسورد رو از حالت رمزنگاری خارج کنی.. باید پسورد رو اینکریپت شده ذخیره کنی و پسوردی که کاربر وارد میکنه رو هم اینکریپت کنی و بعد مقایسه


1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش آپدیت شد
0

@ali.bayat


الان کد من اینه 
$c=['password'=>$password];
if(Auth::attempt($c)){
                dd("yes");
                   }else{
                dd("no");}
‍‍‍```
اما گار نمیکنه

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

چون متد Auth::attempt به Email و Password نیاز داره. Email رو هم باید در آرایه داشته باشید


1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش مطرح شد
0

@ali.bayat
من لاگینی نوشتم که یا ایمیل میگیره یا موبایل
زمانی که موبایل میگیره رمزش رو می خوام بررسی کنم ایا متدد دیگری وجود داره الان باید چیکار کنم


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

بالاخره این متد فقط password نمی‌خواهد.

در LoginController یه متد credentials هست که کم و بیش باید شبیه زیر بشه:

<?php

namespace App\Http\Controllers\Auth;
use Socialite;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    /**
     * Redirect the user to the GitHub authentication page.
     *
     * @return \Illuminate\Http\Response
     */
      public function redirectToProvider($social)
      {
          return Socialite::driver($social)->redirect();
      }

      /**
       * Obtain the user information from GitHub.
       *
       * @return \Illuminate\Http\Response
       */
      public function handleProviderCallback($social)
      {
          $user = Socialite::driver($social)->user();

          // $user->token;
      }

      /**
       * Get the needed authorization credentials from the request.
       *
       * @param  \Illuminate\Http\Request  $request
       * @return array
       */
        protected function credentials(Request $request)
        {
          if(is_numeric($request->get('email'))){
            return ['phone'=>$request->get('email'),'password'=>$request->get('password')];
          }
          elseif (filter_var($request->get('email'), FILTER_VALIDATE_EMAIL)) {
            return ['email' => $request->get('email'), 'password'=>$request->get('password')];
          }
          return ['username' => $request->get('email'), 'password'=>$request->get('password')];
        }
}

اطلاعات بیشتر در لینک زیر:
https://stackoverflow.com/questions/47537191/laravel-login-with-username-email-or-phone


1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش آپدیت شد
0

@ali.bayat


الان کد من اینه که خودم ریجسترو لاگین نوشتم از لاگین و ریجستر لاراول استفاده نکردم
public function login۲(\Illuminate\Http\Request $request)
    {
        $tt= session()->get('login');

//$re=encrypt($request->get('password'));

        $y=Hash::make($request->get('password'));
        if(preg_match("/^۰۹[۰-۹]+.{۸}$/", $tt)){
            if(User::where([['mobile',$tt],['password',$y]])->first()){
                return redirect('index');
            }else{
                return redirect("login۲")->withErrors("رمز اشتباه است");
            }
        }else{
            if(User::where([['email',$tt],['password',$request->get('password')]])->first()){
                return redirect('index');
            }else{
                return redirect("login۲")->withErrors("رمز اشتباه است");
            }
        }
}
اما پسورد دیتابیس با پسورد که وارد میکنم با خم برابر نیست اما زمانیکه پسورد دیتابیس رو از حالت انکریپت در می آورم درست میشه
‍‍‍```

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام