سلام دوستان
خسته نباشید
من با استفاده از axios از یک apiاستفاده کردم برای لاگین کردن در یک برنامه ی vuejs3
چطوری میتونم در ادامه ی این کد بگم که اگر توکن expireشد از refresh_token استفاده کنه و یک توکن جدید براش ایجاد کنه؟
خیلی ممنون میشم اگر راهنماییم کنید
SignIn() {
const result = axios
.post("http://localhost:8000/api/login", this.data)
.then((response) => {
// console.log(result)
localStorage.setItem("token", response.data.token);
localStorage.setItem("refresh_token", response.data.refresh_token);
eventBus.emit("showlog" , this.log);
this.$router.push({ name: "Post" });
console.log("logged in");
})
.catch(err => console.log(err.message))
},
از پکیج پسپورت لاراول استفاده کنید هرگاه توکن انقضاع بشه کد 401 برمیگردونه و شما با استفاده از این کد متوجه میشوید که توکن منقضی شده و در ادامش یه درخواست به همراه رفرش توکن ارسال میکنید و توکن جدید رو دریافت میکیند.
سلام@milwad
@hosseinshirinegad98
ممنونم ازتون
در برنامه ی لاراولی که دارم از apiاش توی ویو استفاده میکنم از passportاستفاده کردم
هرچقدر سرچ میکنم متوجه نمیشم چطوری توی ویو۳ ازش استفاده کنم
میشه بیشتر راهنماییم کنید لطفا🙏🌹
من چطوری میتونم توی برنامه ی لاراولیم که از passport هم توش استفاده کردم از refreshtokenاستفاده کنم؟
کدم الان به این صورت هست
public function login(){
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('Personal Access Token')-> accessToken;
// dd($success['token']);
return response()->json(['success' => $success], $this-> successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
سلام از این روشی که شما استفاده کردید برای رفرش توکن نمیشه استفاده کرد باید از روش دیگه احراز هویت با پسپورت استفاده کنید
در مستندات لاراول این مواردو گفتن
در فصل یک این اموزش
قسمتهای 105 - 106 - 107 و 108 رو نگاه کنید
@hosseinshirinegad98
سلام
خسته نباشید
خیلی مچکرم ازتون با راهنماییتون تونستم رفرش توکن رو بگیرم
حالا در سمت برنامه ی ویو چطور میتونم چک کنم که توکن expireشده یا نه؟
ممنون میشم برای این سوال هم راهنماییم کنید
سلام من بیشتر برنامه نویس سمت سرورم و لی شما به چندروش میتونید این کارو انجام بدید یا بیاید زمان معتبر بودن توکنو در لوکال استوریج ذخیره کنید و قبل هر ارسال درخواست ،با jsبیاید این زمانو برسی کنید که معتبر هست یا نه.ولی روش سادش این هست که در بالا هم گفتم شما هیچ زمانی رو چک نکن و به درخواست زدنها به روتهایی که نیاز به احراز هویت دارند ادامه بدید هرگاه توکن منقضی بشه کد 401 برمیگردونه و شما باید در ادامه یه درخواست با رفرش توکن برای گرفتن اکسس توکن بزنید و بعد از دریافن اکسس توکن مجدد کاربرو به روت قبلی که میخواست بره و توکنش منقضی شده بود ریدایرکت کنی.
باید در درخواستهای axios کدی که سرور میده رو چک کنید اگر 401 داد باید ببینید درلوکال استوریج رفرش توکن دارید اگه دارید که اقدام به گرفتن اکسس توکن جدید میکنید و در غیر اینصورت فرم لاگین نشون داده میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟