דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. OAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה

OAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה

מתוזמן נעוץ נעול הועבר תכנות
17 פוסטים 3 כותבים 273 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    כתב ב נערך לאחרונה על ידי
    #1

    אני מעוניין לעשות פרויקט בnodejs שיעבוד בצורה שמי שירצה להשתמש בו, יקים אינסטנס שלו, לדוגמה על heroku (באמצעות הapp.json Schema), יגש לגוגל קונסול, ינפיק אישורי אימות לגישה למיילים אנשי קשר וכו', ויכניס אותם במשתני סביבה, והיישום יקח אותם משם (ישירות או דרך buildpack כזה ששומר אותו כקובץ json באופן אוטומטי).

    אימות רגיל באמצעות OAuth2 על ידי פתיחת כתובת בlocalhost לא מתאים, כיוון שבשביל זה יהיה צורך להוריד את המאגר למחשב, ולהריץ אותו, וכו', דברים לא קלים למשתמש שאינו טכני (לדוגמה nodejs מסתמא לא יהיה מותקן לו...),
    הפתרון הוא לכאורה שימוש בoauthplayground של גוגל תוך שימוש בclient id וכו' מותאמים אישית (כאן לדוגמה יש הסבר),
    אלא שבאם מסך האימות במצב בדיקה, אסימון הרענון פג תוך שבוע, ולפרסם אותו אי אפשר בקלות כיוון שאם מבקשים הרשאות קריטיות - כגון גישה לתוכן המיילים, אין אפשרות לעשות publish בלי אימות מגוגל עם דומיינים מאומתים ושאר כאב ראש.

    אודה מאוד לעצה כיצד ניתן להנפיק אישורי אימות קבועים ולא פגי תוקף תוך זמן קצר, ללא צורך בהרצה לוקאלית של פרוייקט, כך שיהיה ניתן להכניס את האישורים שהונפקו כconfig לאינסטנס, והוא יוכל להתחיל לעבוד בצורה תקינה באופן מיידי.
    [אימות באמצעות חשבון שירות וכדו' לא רלוונטי, כיוון שאני צריך גישה למייל, ויכולת זו קיימת בחשבון שירות רק במייל עסקי.]
    @חוקר

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    ח dovidD 2 תגובות תגובה אחרונה
    0
    • ח מנותק
      ח מנותק
      חוקר
      השיב לצדיק תמים ב נערך לאחרונה על ידי
      #2

      @צדיק-תמים
      אני ניסיתי אפליקציה רק על מצב בדיקה כי אני עשיתי לשימוש אישי, ובמקרה כזה לא חייב בכלל לעבור דרך localhost, אלא אפשר להשים גם כתובות ודומיינים משלך, ולא חייב לעבור אימות, אלא אתה מגדיר בכתובות המורשות ל redirectUri את הכתובת המדוייקת של השירות שידע לקבל את הקוד ולשמור את האסימון המתקבל.
      אתה מתכנן לעשות אפליקציה שתעבור בדיקת גוגל?

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      2
      • צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        השיב לחוקר ב נערך לאחרונה על ידי
        #3

        @חוקר לא, כמו שאמרתי הרעיון הוא בעצם שכל אחד יאמת לעצמו, ללא צורך בפרסום, כיוון שהרעיון הוא שהוא נותן לאינסטנס האישי שלו גישה לחשבון, ולא נותן לי לגשת בשבילו.

        @חוקר אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

        אני ניסיתי אפליקציה רק על מצב בדיקה כי אני עשיתי לשימוש אישי, ובמקרה כזה לא חייב בכלל לעבור דרך localhost, אלא אפשר להשים גם כתובות ודומיינים משלך,

        הבעיה כל מי שמשתמש בסינון מבוסס רשימה לבנה כגון נטפרי, יצטרך לשלוח לבדיקה את הכתובת של האינסטנס שלו... אני רוצה לחסוך את זה

        ולא חייב לעבור אימות, אלא אתה מגדיר בכתובות המורשות ל redirectUri את הכתובת המדוייקת של השירות שידע לקבל את הקוד ולשמור את האסימון המתקבל.

        לא הבנתי, תוכל להרחיב?

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        ח צדיק תמיםצ 2 תגובות תגובה אחרונה
        0
        • ח מנותק
          ח מנותק
          חוקר
          השיב לצדיק תמים ב נערך לאחרונה על ידי
          #4

          @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

          לא הבנתי, תוכל להרחיב?

          מצורף דוגמת קוד ב PHP של לשיחת מיילים עם אימות המייל בפעם הראשונה.
          ניתן להריץ משורת הפקודה או מהדפדפן, עיין בהערות בעברית בהמשך הקוד.
          אם רוצים לאפשר הרצה בדפדפן צריך גם לטפל שה PHP ידע לטפל באימות לאחר אישור הגישה על ידי המשתמש.
          ועל זה ציינתי שצריך לאפשר את ה redirectUri ביצירת האפליקציה.

          <?php
          
          $configGlobal = [
              'configFile' => __DIR__ . '/credentials.json',
              'redirectUri' => '', // כתובת הURL לאן גוגל יחזיר את המשתמש לאחר האימות. הכתובת צריכה להיות מורשית הפרטי האפליקציה
              'user' => ''
          ];
          
          sendMessage(['gmail@gmail.com' => 'גוגל'], 'הי! שלחתי מייל', 'תוכן המייל')
          
          function sendMessage($ToMail, $Subject, $Content, $files = null, $FromEmail = null, $config = null) {
              if (!$config){
                  global $configGlobal;
                  $config = $configGlobal;
              }
              require_once '../vendor/autoload.php';// Create the Transport
              $client = getGoogle_ServiceClient($config);
              $objGMail = new Google_Service_Gmail($client);
              $strRawMessage = "";
              $boundary = uniqid(rand(), true);
              $subjectCharset = $charset = 'utf-8';
          
              if (is_array($ToMail)) {
                  if (isset($ToMail['name'])) {
                      $strRawMessage .= 'To: ' . '=?utf-8?B?' . base64_encode($ToMail['name']) . '?=' . " <" . $ToMail['mail'] . ">" . "\r\n";
                  } else {
                      $mail = array_keys($ToMail)[0];
                      $strRawMessage .= 'To: ' . '=?utf-8?B?' . base64_encode($ToMail[$mail]) . '?=' . " <" . $mail . ">" . "\r\n";
                  }
              } else {
                  $strRawMessage .= 'To: ' . $ToMail . "\r\n";
              }
          
          //    $strRawMessage .= 'Bcc: ' . '=?utf-8?B?' . base64_encode( '' ) . '?=' . " <" . '@gmail.com' . ">" . "\r\n";
              if (is_array($FromEmail)) {
                  if (isset($FromEmail['name'])) {
                      $strRawMessage .= 'From: ' . '=?utf-8?B?' . base64_encode($FromEmail['name']) . '?=' . " <" . $FromEmail['mail'] . ">" . "\r\n";
                      $strSesFromEmail = $FromEmail['mail'];
                  } else {
                      $mail = array_keys($FromEmail)[0];
                      $strRawMessage .= 'From: ' . '=?utf-8?B?' . base64_encode($FromEmail[$mail]) . '?=' . " <" . $mail . ">" . "\r\n";
                      $strSesFromEmail = $mail;
                  }
              } else {
                  $strRawMessage .= 'From: ' . $FromEmail . "\r\n";
                  $strSesFromEmail = $FromEmail;
              }
          
          
              $strRawMessage .= 'Subject: =?' . $subjectCharset . '?B?' . base64_encode($Subject) . "?=\r\n";
              $strRawMessage .= 'MIME-Version: 1.0' . "\r\n";
              $strRawMessage .= 'Content-type: Multipart/Mixed; boundary="' . $boundary . '"' . "\r\n";
              $strRawMessage .= "\r\n--{$boundary}\r\n";
              $strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n";
              $strRawMessage .= "Content-Transfer-Encoding: base64" . "\r\n\r\n";
              $strRawMessage .= $Content  . "\r\n";
              $strRawMessage .= "--{$boundary}\r\n";
          
              if ($files) {
                  foreach ($files as $key => $file) {
                      $filePath = $file[0];
                      if ($filePath) {
                          $finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
                          $mimeType = finfo_file($finfo, $filePath);
                          $fileName = $file[1];
          
                          $strRawMessage .= "\r\n--{$boundary}\r\n";
                          $strRawMessage .= 'Content-Type: ' . $mimeType . '; name="' . $fileName . '";' . "\r\n";
                          $strRawMessage .= 'Content-ID: <' . $strSesFromEmail . '>' . "\r\n";
                          $strRawMessage .= 'Content-Description: ' . $fileName . ';' . "\r\n";
                          $strRawMessage .= 'Content-Disposition: attachment; filename="' . $fileName . '"; size=' . filesize($filePath) . ';' . "\r\n";
                          $strRawMessage .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n";
                          $strRawMessage .= chunk_split(base64_encode(file_get_contents($filePath)), 76, "\n") . "\r\n";
                          $strRawMessage .= "--{$boundary}\r\n";
                      }
                  }
              }
          
              try {
                  // The message needs to be encoded in Base64URL
                  $mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
                  $msg = new Google_Service_Gmail_Message();
                  $msg->setRaw($mime);
                  $objSentMsg = $objGMail->users_messages->send("me", $msg);
          //        echo '<pre>'; print_r($objSentMsg); echo '</pre>';
              } catch (Exception $e) {
                  print($e->getMessage());
              }
          }
          
          
          function getGoogle_ServiceClient($config)
          {
              require_once '../vendor/autoload.php';// Create the Transport
              $client = new Google_Client();
              $client->setApplicationName('Gmail API PHP Quickstart');
              $client->setScopes(Google_Service_Gmail::MAIL_GOOGLE_COM);
              $client->setAuthConfig($config['configFile']);
              $client->setAccessType('offline');
              $client->setPrompt('select_account consent');
              if (isset($config['user']) && $config['user']) {
                  $client->setState($config['user']);
              }
              if (isset($config['redirectUri']) && $config['redirectUri']) {
                  $client->setRedirectUri($config['redirectUri']);
              }
          
              // Load previously authorized token from a file, if it exists.
              // The file token.json stores the user's access and refresh tokens, and is
              // created automatically when the authorization flow completes for the first
              // time.
              $str = 'token' . str_replace('@', '.', $config['user']);
              $tokenPath = __DIR__ . '/' . $str . '.json';
              if (file_exists($tokenPath)) {
                  $accessToken = json_decode(file_get_contents($tokenPath), true);
                  $client->setAccessToken($accessToken);
              }
          
              // If there is no previous token or it's expired.
              if ($client->isAccessTokenExpired()) {
                  // Refresh the token if possible, else fetch a new one.
                  if ($client->getRefreshToken()) {
                      $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
                  } else {
                      // Request authorization from the user.
                      if (php_sapi_name() != 'cli') {
          				//אם מדובר בהרצת מהדפדפן זה יעביר את הגולש לדף האישור של גוגל ואח"כ יחזיר אותו redirectUri ויעביר לשם את הקוד, בקוד דלהלן הוא יודע לטפל בקוד שמתקבל מגוגל וליצור את האסימונים.
          				//אם עדיין לא קיים קוד האימות הURL זה מפנה לגוגל
                          if (!isset($_GET['code'])){
                              $authUrl = $client->createAuthUrl();
                              header('Location: ' . $authUrl);
                              exit();
                          } else {
          					//אם קיים קוד אימות ב URL הוא יאמת אותו בהמשך מול גוגל
                              $authCode = $_GET['code'];
                          }
                      } else {
          				//הקוד דלהלן כאשר מריצים את PHP משורת הפקודה, זה יתן לינק לפתיחה בדפדפן, וסיומו ניתן לגזור את הקוד מהURL ולהדביק לטרמינל
                          $authUrl = $client->createAuthUrl();
                          printf("Open the following link in your browser:\n%s\n", $authUrl);
                          print 'Enter verification code: ';
                          $authCode = trim(fgets(STDIN));
                      }
          
                      // Exchange authorization code for an access token.
                      $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
                      $client->setAccessToken($accessToken);
          
                      // Check to see if there was an error.
                      if (array_key_exists('error', $accessToken)) {
                          throw new Exception(join(', ', $accessToken));
                      }
                  }
                  // Save the token to a file.
                  if (!file_exists(dirname($tokenPath))) {
                      mkdir(dirname($tokenPath), 0700, true);
                  }
                  file_put_contents($tokenPath, json_encode($client->getAccessToken()));
              }
              return $client;
          }
          
          
          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            השיב לצדיק תמים ב נערך לאחרונה על ידי dovid
            #5

            @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

            אני מעוניין לעשות פרויקט בnodejs שיעבוד בצורה שמי שירצה להשתמש בו, יקים אינסטנס שלו, לדוגמה על heroku (באמצעות הapp.json Schema), יגש לגוגל קונסול, ינפיק אישורי אימות לגישה למיילים אנשי קשר וכו', ויכניס אותם במשתני סביבה, והיישום יקח אותם משם (ישירות או דרך buildpack כזה ששומר אותו כקובץ json באופן אוטומטי).

            עד כאן הכל טוב.

            אימות רגיל באמצעות OAuth2 על ידי פתיחת כתובת בlocalhost לא מתאים, כיוון שבשביל זה יהיה צורך להוריד את המאגר למחשב, ולהריץ אותו, וכו', דברים לא קלים למשתמש שאינו טכני (לדוגמה nodejs מסתמא לא יהיה מותקן לו...),

            הבעיה לא מובנת לי. מה הקשר localhost? למה הציטוט הראשון מחייב פתיחה בLocalhost? למה אימות רגיל == פתיחה בlocalhost?

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            ח תגובה 1 תגובה אחרונה
            0
            • ח מנותק
              ח מנותק
              חוקר
              השיב לdovid ב נערך לאחרונה על ידי
              #6

              @dovid אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

              מה הקשר localhost

              כי זה מה שמופיע בכל הדוגמאות של גוגל.
              כעת הראתי דוגמת קוד שזה ממש לא מחייב.

              dovidD תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                השיב לחוקר ב נערך לאחרונה על ידי
                #7

                @חוקר הדוגמאות הם למפתחים, פעם ראית מפתח שעובד עם דומיין (למעט PHP 🙂 )?

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                2
                • ח מנותק
                  ח מנותק
                  חוקר
                  כתב ב נערך לאחרונה על ידי חוקר
                  #8

                  @צדיק-תמים
                  יש להכניס את הredirectUri מראש בעריכת ה credentials
                  כמו בתמונה
                  96443e94-69f6-49be-a8ad-ed3020a76eb7-image.png
                  ואז בכניסה ל https://exmple.net/SendMail.php בפעם הראשונה בדפדפן זה יעביר לדף האימות של גוגל ואח"כ יחזיר אותו לאותו הדף https://exmple.net/SendMail.php יחד עם הcode ב URL והקוד הנ"ל שהבאתי מבצע כבר את האימות ויוצר אסימון

                  תגובה 1 תגובה אחרונה
                  0
                  • צדיק תמיםצ מנותק
                    צדיק תמיםצ מנותק
                    צדיק תמים
                    השיב לצדיק תמים ב נערך לאחרונה על ידי צדיק תמים
                    #9

                    @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                    הבעיה כל מי שמשתמש בסינון מבוסס רשימה לבנה כגון נטפרי, יצטרך לשלוח לבדיקה את הכתובת של האינסטנס שלו... אני רוצה לחסוך את זה

                    אם הבנתי נכון, במה שהצעת הבעיה קיימת, כי צריך שהאתר יהיה פתוח? אני צודק? או שאפשר לפתוח את מסך האימות גם בלי זה (איך? בעצם אני צריך משהו כמו הoauthplayground, ורק בredirectUri להכניס את הכתובת של האינסטנס), ורק הredirect יהיה לכתובת שעדיין לא פתוחה - הכתובת של האינסטנס (וזה לא בעיה, כי הבקשה תגיע לשרת עם הקוד בurl, והוא ישמור אותו וכו', למרות שהתשובה תהיה חסומה לצפיה)
                    @dovid זה עונה גם על השאלה שלך - אם אני לא רוצה שיהיה צריך לשלוח כל אינסטנס לבדיקה, הדרך היחידה לכאורה היא localhost

                    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                    טיפים

                    dovidD ח 2 תגובות תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      השיב לצדיק תמים ב נערך לאחרונה על ידי
                      #10

                      @צדיק-תמים לא הבנתי כלום מכל מה שכתבת.
                      לא צריך לשלוח שום אינסטנס לבדיקה (בדיקה של מי?), ואתה יכול לכתוב בקונסול איזה כתובת שמתחשק לך (מה זה נקרא פתוח/לא פתוח?).
                      @חוקר המילה "מראש" לא מדוייקת, אפשר לשנות את זה בכל שלב.

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      צדיק תמיםצ ח 2 תגובות תגובה אחרונה
                      0
                      • צדיק תמיםצ מנותק
                        צדיק תמיםצ מנותק
                        צדיק תמים
                        השיב לdovid ב נערך לאחרונה על ידי
                        #11

                        @dovid בדיקה של הסינון - אם זה נטפרי, אתרוג, וכו'
                        ממילא פתוח = פתוח לגישה בסינון

                        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                        טיפים

                        dovidD תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          השיב לצדיק תמים ב נערך לאחרונה על ידי
                          #12

                          @צדיק-תמים רחמנות עלי!!
                          אני לא מבין כלום.
                          הבחור שמשתמש בפרוייקט שלך פותח חשבון בheruko וכמובן הוא צריך לפתוח את זה בנטפרי, מה זה קשור לכל השאלה הטכנולוגית אודות הauth??
                          לגוגל לא בוער שזה יהיה פתוח, וכל עוד זה חסום ממילא הוא לא יכול להיכנס לאפליקציה בין עם האימות ובין בלעדיו!

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          צדיק תמיםצ תגובה 1 תגובה אחרונה
                          0
                          • צדיק תמיםצ מנותק
                            צדיק תמיםצ מנותק
                            צדיק תמים
                            השיב לdovid ב נערך לאחרונה על ידי צדיק תמים
                            #13

                            @dovid מתנצל שלא הבהרתי את זה קודם, האפליקציה רצה ללא מגע יד אנוש או מול מערכת טלפונית, בשום אופן לא על ידי ממשק כלשהו בדפדפן וכדו'. וממילא לולי הצורך באימות, אין לי שום צורך לפתוח בנטפרי את האפליקציה.

                            Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                            טיפים

                            dovidD תגובה 1 תגובה אחרונה
                            0
                            • ח מנותק
                              ח מנותק
                              חוקר
                              השיב לצדיק תמים ב נערך לאחרונה על ידי
                              #14

                              @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                              @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                              הבעיה כל מי שמשתמש בסינון מבוסס רשימה לבנה כגון נטפרי, יצטרך לשלוח לבדיקה את הכתובת של האינסטנס שלו... אני רוצה לחסוך את זה

                              אם הבנתי נכון, במה שהצעת הבעיה קיימת, כי צריך שהאתר יהיה פתוח? אני צודק? או שאפשר לפתוח את מסך האימות גם בלי זה (איך? בעצם אני צריך משהו כמו הoauthplayground, ורק בredirectUri להכניס את הכתובת של האינסטנס), ורק הredirect יהיה לכתובת שעדיין לא פתוחה - הכתובת של האינסטנס (וזה לא בעיה, כי הבקשה תגיע לשרת עם הקוד בurl, והוא ישמור אותו וכו', למרות שהתשובה תהיה חסומה לצפיה)
                              @dovid זה עונה גם על השאלה שלך - אם אני לא רוצה שיהיה צריך לשלוח כל אינסטנס לבדיקה, הדרך היחידה לכאורה היא localhost

                              1. בנטפרי כשאתר לא נפתח והוא עושה רדיירקט לאתר פתוח, זה מעביר או לא?
                              2. אתה יכול להכין מראש את הלינק לפתיחת הדף בגוגל, כי זה מורכב מפרטי הפרוייקט הנמצא בקובץ credentials.json ולפי ה redirectUri זה יעביר חזרה לאתר המבוקש, וכפי שכתבת הבקשה תבוצע למרות שזה סגור בנטפרי.
                              צדיק תמיםצ תגובה 1 תגובה אחרונה
                              1
                              • ח מנותק
                                ח מנותק
                                חוקר
                                השיב לdovid ב נערך לאחרונה על ידי
                                #15

                                @dovid אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                                @חוקר המילה "מראש" לא מדוייקת, אפשר לשנות את זה בכל שלב.

                                אתה צודק, רק התכוונתי לפני ביצוע הבקשה עם ה redirectUri המבוקש.
                                אחרת גוגל יתן שגיאה לפני ביצוע האימות שזה מפנה ל redirectUri לא מוגדר.
                                אבל אכן ניתן תמיד להוסיף ולהסיר כתובות

                                תגובה 1 תגובה אחרונה
                                1
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid ניהול
                                  השיב לצדיק תמים ב נערך לאחרונה על ידי dovid
                                  #16

                                  @צדיק-תמים אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                                  @dovid מתנצל שלא הבהרתי את זה קודם, האפליקציה רצה ללא מגע יד אנוש או מול מערכת טלפונית, בשום אופן לא על ידי ממשק כלשהו בדפדפן וכדו'. וממילא לולי הצורך באימות, אין לי שום צורך לפתוח בנטפרי את האפליקציה.

                                  כעת הבנתי.
                                  תנחה את המשתמשים להזין כתובת אתר שלך שפתוח כבר, והוא יקבל את כל ההרשאות, ויקבל בstate שלו פרמטר למי לשלוח את טוקן הגישה.

                                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • צדיק תמיםצ מנותק
                                    צדיק תמיםצ מנותק
                                    צדיק תמים
                                    השיב לחוקר ב נערך לאחרונה על ידי צדיק תמים
                                    #17

                                    @חוקר אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                                    בנטפרי כשאתר לא נפתח והוא עושה רדיירקט לאתר פתוח, זה מעביר או לא?

                                    בדקתי, ומעביר! תודה, רעיון מעולה 💡

                                    @חוקר אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

                                    אתה יכול להכין מראש את הלינק לפתיחת הדף בגוגל, כי זה מורכב מפרטי הפרוייקט הנמצא בקובץ credentials.json ולפי ה redirectUri זה יעביר חזרה לאתר המבוקש, וכפי שכתבת הבקשה תבוצע למרות שזה סגור בנטפרי.

                                    איך עושים את זה?
                                    @dovid מה זה אומר state?

                                    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                                    טיפים

                                    תגובה 1 תגובה אחרונה
                                    0

                                    בא תתחבר לדף היומי!
                                    • התחברות

                                    • אין לך חשבון עדיין? הרשמה

                                    • התחברו או הירשמו כדי לחפש.
                                    • פוסט ראשון
                                      פוסט אחרון
                                    0
                                    • דף הבית
                                    • קטגוריות
                                    • פוסטים אחרונים
                                    • משתמשים
                                    • חיפוש
                                    • חוקי הפורום