হাই, আমি কীভাবে নতুন কৌণিক ইন্টারসেপ্টরগুলি বাস্তবায়িত করব এবং 401 unauthorized
টোকেনকে রিফ্রেশ করে এবং অনুরোধটি পুনরায় চেষ্টা করে ত্রুটিগুলি পরিচালনা করতে চেষ্টা করছি to এটি যে গাইডটি আমি অনুসরণ করে চলেছি : https://ryanchenkie.com/angular-authentication-used-the-http-client-and-http-interceptors
আমি সফলভাবে ব্যর্থ অনুরোধগুলি ক্যাশে করছি এবং টোকেনটি রিফ্রেশ করতে পারি তবে পূর্বে ব্যর্থ হওয়া অনুরোধগুলি কীভাবে পুনরায় পাঠানো যায় তা আমি বুঝতে পারি না। আমি বর্তমানে যে রেজোলিউয়ারগুলি ব্যবহার করছি তার সাথে এটি কাজ করতেও চাই।
token.intercepor.ts
return next.handle( request ).do(( event: HttpEvent<any> ) => {
if ( event instanceof HttpResponse ) {
// do stuff with response if you want
}
}, ( err: any ) => {
if ( err instanceof HttpErrorResponse ) {
if ( err.status === 401 ) {
console.log( err );
this.auth.collectFailedRequest( request );
this.auth.refreshToken().subscribe( resp => {
if ( !resp ) {
console.log( "Invalid" );
} else {
this.auth.retryFailedRequests();
}
} );
}
}
} );
প্রমাণীকরণ.সর্বস্ব.স.
cachedRequests: Array<HttpRequest<any>> = [];
public collectFailedRequest ( request ): void {
this.cachedRequests.push( request );
}
public retryFailedRequests (): void {
// retry the requests. this method can
// be called after the token is refreshed
this.cachedRequests.forEach( request => {
request = request.clone( {
setHeaders: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `Bearer ${ this.getToken() }`
}
} );
//??What to do here
} );
}
উপরের পুনরায় চেষ্টা করা ফাইলগুলি হ'ল আমি যা বের করতে পারি না। আমি কীভাবে অনুরোধগুলি পুনরায় পাঠাব এবং পুনরায় চেষ্টা করার পরে সেগুলি সমাধানের মাধ্যমে রুটে উপলব্ধ করব?
এটি যদি প্রাসঙ্গিক কোড হয় তবে তা এই সহায়তা করে: https://gist.github.com/joshharms/00d8159900897dc5bed45757e30405f9