آخرین فعالیت ٢ روز پیش

@mehdiphpgrp

پارس کلیکی از ۶ ماه پیش

تجربه

1900

  • @amir نمونه کد هم گذاشتم،

  • ٣ هفته پیش @mehdiphpgrp یک بحث به اسم مشکل در کار نکردن Auth::attempt در لاراول درست کرد.

    باسلام و وقت بخیر،

    من موقع لاگین از Auth::attempt استفاده میکنم که یه آرایه از کلمه عبور و رمز رو بهش پاس میدم، از اونجایی که کلمه عبور من با پیشفرض لاراول یکی نیست یعنی به جای email من mobile دارم و اومدم username رو override کردم، ولی بازم Auth::attempt نمیتونه مشخصات کاربری ک مطمئنم درست هست رو برگردونه ممنون میشم اگه بهم بگید چطور باید username و password رو override کنم که وقتی از Auth::attempt استفاده میکنم کاربر رو برام برگردونه این کد لاگین من هست:

    public function login(Request $request){
        $validator = Validator::make($request -> all(), [
            'mobile' => 'required',
            'password' => 'required',
        ]);
        if($validator -> fails()){
            return response()->json($validator->errors());
        }
    
        $credentials = (['mobile' =>$request->input('mobile'), 'password' =>$request->input('password')]);
        try{
            if(! $token = JWTAuth::attempt($credentials)){
                return response()->json(['errors' => 'invalid username and password']);
            }
        }catch (JWTException $e){
            return response()->json(['errors' => 'could not create token']);
        }
        return response()->json(compact('token'));
    }

    اینم کد مدل من:

    class User extends Authenticatable { use Notifiable;

    protected $table = 'driver';
    public $timestamps = false;
    protected $fillable = [
        'name', 'mobile', 'national_code','password',
    ];
    protected $hidden = [
        'password'
    ];

    }

  • ٣ هفته پیش @mehdiphpgrp به بحث لاراول پاسپورت جواب داد.

    @mohammad-hemmati سلام خدمت شما دوست عزیز من مراحلش رو رفتم و پس از نصب اومدم از config/auth.php مدل خودم رو هم override کردم، مدل من Driver که جدولش هم DRIVER ، که داخل مدل به این شکل معرفیش کردم:

    protected $table = 'DRIVER'; 

    از اونجایی که username من mobile اون رو هم override کردم ولی موقع لاگین وقتی دستور

    Auth::attempt(
    ['MOBILE' => $mobile,
     'password' => $nationalCode])

    رو میزنم اصلا چیزی رو برنمیگردونه در صورتی که همین آرایه رو کوری میزنم مشخصات یوزر رو میاره ولی با Auth::attempt نه . مشکل دوم اینه که برای route هام از این روش استفاده کردم:

    Route::middleware('auth:api')->group(['prefix' => 'v1', 'namespace' => 'API\v1'], function() {
        Route::post('getDetails', 'DetailsController@getDetails');
    });

    ولی وقتی با postman آدرس مربوطش رو میزنم با توجه به اینکه داخل هدر توی key از Authorization و داخل value از bearer Token استفاده میکنم اما چه داخل هدر اینها رو بذارم و چه نذارم یا اینکه چه از middleware('auth:api') استفاده کنم چه نکنم دیتا ها رو برام میاره

  • ٣ هفته پیش @mehdiphpgrp یک بحث به اسم لاراول پاسپورت درست کرد.

    با سلام خدمت همه دوستان و اساتید محترم چطور میتونم داخل لاراول که از پکیج passport برای احراز هویت داخل api استفاده کردم، هم model هم username و password اون رو به چیزای دیگه تغییر بدم؟

    یعنی بجای اینکه پاسپورت بره از User model بخونه از جدول دیگه ای که من بهش دادم بخونه و همینطور یوزر و پسورد مثلا بجای username از mobile و بجای password از nationalCode استفاده کنه؟ در ضمن من تا جایی که میدونستم کارای لازم رو انجام دادم از جمله اینکه داخل مدلی که میخوام رو از Authenticatable اکستند کردم و داخل config/auth هم

        'providers' => [
            'driver' => [
                'driver' => 'eloquent',
                'model' => App\Driver::class,
            ],

    و همچنین

        'guards' => [
            'web' => [
                'driver' => 'session',
                'provider' => 'driver',
            ],
    
            'api' => [
                'driver' => 'passport',
                'provider' => 'driver',
            ],
        ],

    این ها رو هم تغییر دادم ولی جواب نگرفتم ممنون میشم راهنمایی کنید. با سپاس فراوان

  • ٣ هفته پیش @mehdiphpgrp عضو بحث لاراول پاسپورت شد.
  • @amir بله این رو هم امتحان کردم اصلا هیچ فایلی رو از سمت جسپر باز نمیکرد ولی اولی بازم pdf رو باز میکرد فقط اطلاعات دیتابیس رو نمیاورد . نمیدونم درایور یا چیز دیگه چون مشکلی با mysql ندارن دوتاشون داستان روی sql server

  • با سلام من با لاراول 5.6 به sql server وصل شدم و عملیات CRUD رو انجام میدم و مشکلی نیست. اما وقتی از حرف "ی" استفاده میکنم به مشکل میخورم. برای مثال:

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

    تنظیمات config دیتابیس رو هم روی utf8 گذاشتم ولی نشد.

    'sqlsrv' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '1433'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_persian_ci',
        'strict' => false,
        'engine' => null,
        'prefix' => '',
    ],