من برنامه ای دارم که کاملاً حول Spotify می چرخد. من راهنمای مجوز را از Spotify دنبال کرده ام و از Autoriz Code Code Flow استفاده کرده ام تا نشانه دسترسی قابل تجدید باشد. فکر من این بود که این کار باعث می شود هر بار که به برنامه برگردند ، مجبور به ورود به سیستم Spotify شوند ، اما من مطمئن نیستم که چگونه این کار را با اطمینان انجام دهیم.

برای مجوز ، آنها را به صفحه Spotify می دهند تا تأیید هویت کنند. و دسترسی به برنامه من به حوزه های درخواستی اعطا شود. پس از تغییر مسیر به برنامه React ، کد مجوز به سرور API من REST فرستاده می شود تا بتواند یک نشانه دسترسی و تازه کردن را بدست آورد.

در این مرحله ، من در حال تعجب هستم: DB؟ آیا نیازی به رمزگذاری آن ندارم؟

  • آیا باید رمز دسترسی را به برنامه React خود برگردانم تا بتواند
    آن را در درخواست های بعدی به API من گنجانید؟
  • از آنجا که من ID Spotify را در DB خود ذخیره می کنم ، به نظر می رسد می توانم از نشانه دسترسی برای ضربه زدن به https://api.spotify.com/v1/me استفاده کنم. این شناسه را جستجو کرده و در پایگاه داده من جستجو کنید تا اطمینان حاصل کنید که آنها مجاز به دسترسی به منابع درخواست شده هم در سرور من و هم در Spotify در یک ضربه هستند. به نظر می رسد این امر مانع از نیاز به تأیید هویت مجزا فقط برای برنامه من می شود ، زیرا به هر حال همه چیز به Spotify گره خورده است.

    نگرانی من از این رویکرد این است که به نظر ناامن است. اگر یک شخص مخرب یکی از نشانه های کاربر من را بدست آورد ، می ترسم آنها دسترسی ابدی داشته باشند ، زیرا من متن را به نمایندگی از کاربر ، همانطور که توسط Code Code Code مشخص شده است ، تازه می کنم.

    بنابراین ، من علاوه بر مجوز Spotify ، به داشتن هویت شخصی خود (AWS Cognito) در نظر می گیرم.

    به نظر می رسد با استفاده از Cognito برای احراز هویت ، به من این امکان را می دهد تا فقط با تأیید JWT مطمئن شوم که این موارد را دارد. سپس ، می توانم آنها را با زیر مجموعه JWT در DB جستجو کنم. به نظر می رسد این روش تمیزتری برای انجام کارها است ، اما این سؤال را برایم پیش می آورد:

    1. آیا دیگر نیازی به تهیه نشانه دسترسی Spotify آنها در DB نیستم؟ آیا نیازی به رمزگذاری آن نیستم؟
    2. آیا این نوعی الگوی ضد است ، زیرا کاربر باید آن را امضا کند
      با من وارد شوید و با Spotify وارد سیستم شوید؟
      به نظر نمی رسد چرا دلیل را منطقی می دانم
      این متفاوت است از هر جریان idP فدرال دیگر ، چگونه
      Cognito اجازه می دهد تا برای ورود به سیستم FB ، Google و غیره استفاده شود
      تأیید اعتبار کاربران با برنامه من. آنها با Spotify وارد سیستم می شوند
      در حال حاضر ، بنابراین من اشتباه می کنم که چرا باید یک گام اضافی وجود دارد
      همچنین باید به برنامه خود وارد شوید.

    من اسناد OAuth 2.0 RFC 6749 را خوانده ام ، اسناد OpenID Connect

    همچنین تعداد زیادی پست (و پیوندهای درون آنها) را خوانده ام ، از جمله ، اما محدود نیست به: