| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 Bydlisko: Veľký Krtíš... | Napísal Draex: 28.08.2015 5:37 | |
|
Implementujem server side flow prihlásenia cez Google, v dokumentácií je popísaný tu: https://developers.google.com/identity/sign-in/web/server-side-flowProblém je, že na niektorých počítačoch, v niektorých prehliadačoch, nefunguje. - Prvý počítač, Google Chrome 44.0.2403.157 m - funguje - Prvý počítač, Microsoft Edge 20.10525.0.0 - nefunguje - Prvý počítač, IE 11 - nefunguje - Druhý počítač, Google Chrome rovnaká verzia - zjednodušená verzia (nižšie) funguje, implementovaná na stránke fungovala raz a už nefunguje Tu je plunker s kódom ktorý som testoval. Snažil som sa ho čo najviac zjednodušiť a takmer všetok je len skopírovaný z dokumentácie. Očakávané správanie kódu, je že po prihlásení sa pod tlačidlom zobrazí text "result in console" a v konzole sa objaví objekt. Keď kód nefunguje, callback sa nezavolá a na stránke sa niž nezmení. Nepodarilo sa mi získať žiadnu chybovú správu. Plunker: http://plnkr.co/s7EJbkEHL6ubnSR7DUmw
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.08.2015 16:57 | |
|
A prehliadač v konzole pre javascript píše čo? (a nie, neplánujem sa prihlasovať na náhodnú stránku, aby som to zistil)
|
|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 Bydlisko: Veľký Krtíš... | Napísal autor témy Draex: 28.08.2015 17:20 | |
|
Prehliadač v konzole nepíše nič. Zistil som, že prihlásenie na druhom počítači nefungovalo z iného dôvodu. Problém sa teda vyskytuje v Internet Exploreri a Microsoft Edge. Btw predtým ako sa prihlásiš si môžeš pozrieť celý kód a zistiť čo robí.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.08.2015 21:56 | |
|
Nemôžem si nič pozrieť, pretože netuším, čo tá Google aplikácia, do ktorej by som sa prihlásil, robí. Ak naozaj javascript konzola nič nepíše, tak asi sa dá použiť niečo ako Wireshark, aby sa zistilo, čo sa pošle a aká odpoveď príde.
|
|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 Bydlisko: Veľký Krtíš... | Napísal autor témy Draex: 29.08.2015 6:19 | |
|
Chrome odošle request na túto adresu: https://accounts.google.com/o/oauth2/iframerpc?action=issueToken&response_type=token%20id_token&scope=openid%20profile%20email&client_id=655082111777-8dlr2thnsn9a1v74f55ku2gs1gjjcpaj.apps.googleusercontent.com&login_hint=AJDLj6LZiU7-hK_OPGVaqqQt5LSt62dIPO6xEgOLtnnsXi4d6GBiR6LMsixmFX1m5h-T2F4u4WK7iY9cQRd0UzQYj5GthUehPw&ss_domain=http%3A%2F%2Frun.plnkr.co&origin=http%3A%2F%2Frun.plnkr.coa ako odpoveď dostane access_token. Edge pošle request na túto adresu: https://accounts.google.com/o/oauth2/auth?redirect_uri=storagerelay%3A%2F%2Fhttp%2Frun.plnkr.co%3Fid%3Dauth739275&response_type=code%20permission&scope=openid%20profile%20email&openid.realm=&client_id=655082111777-8dlr2thnsn9a1v74f55ku2gs1gjjcpaj.apps.googleusercontent.com&ss_domain=http%3A%2F%2Frun.plnkr.co&access_type=offline&origin=http%3A%2F%2Frun.plnkr.coa ako odpoveď dostane tento kód: Kód: <!DOCTYPE html><html><head><title>Connecting ...</title><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0"><script src='https://ssl.gstatic.com/accounts/o/2675243459-storagerelay.js'></script></head><body ><script type="text/javascript">var done = function() {window.close();}; lso.relayAuthResponseByWebStorageEvent( 'http:\/\/run.plnkr.co', '655082111777-8dlr2thnsn9a1v74f55ku2gs1gjjcpaj.apps.googleusercontent.com', 'auth739275', { "login_hint" : "AJDLj6LZiU7-hK_OPGVaqqQt5LSt62dIPO6xEgOLtnnsXi4d6GBiR6LMsixmFX1m5h-T2F4u4WK7iY9cQRd0UzQYj5GthUehPw", "client_id" : "655082111777-8dlr2thnsn9a1v74f55ku2gs1gjjcpaj.apps.googleusercontent.com", "code" : "4/eIAovQWUXrqMObBEAMQ8KM5AkubVFDDtZWfDMFrNvHo" }, done);</script></body></html> Potom načíta tento skript: https://ssl.gstatic.com/accounts/o/2675243459-storagerelay.jsTu je kód celej aplikácie. Pridal som http://localhost ako povolený origin. Kód: <!-- The top of file index.html --> <html itemscope itemtype="http://schema.org/Article"> <head> <!-- BEGIN Pre-requisites --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> </script> <script src="https://apis.google.com/js/client:platform.js?onload=start" async defer> </script> <!-- END Pre-requisites -->
<!-- Continuing the <head> section --> <script> function start() { gapi.load('auth2', function() { auth2 = gapi.auth2.init({ client_id: '655082111777-8dlr2thnsn9a1v74f55ku2gs1gjjcpaj.apps.googleusercontent.com', // Scopes to request in addition to 'profile' and 'email' //scope: 'additional_scope' }); }); } </script> </head> <body> <!-- Add where you want your sign-in button to render --> <!-- Use an image that follows the branding guidelines in a real app --> <button id="signinButton">Sign in with Google</button> <script> $('#signinButton').click(function() { // signInCallback defined in step 6. auth2.grantOfflineAccess({'redirect_uri': 'postmessage'}).then(signInCallback); }); </script> <div id="result"></div> <!-- Last part of BODY element in file index.html --> <script> function signInCallback(authResult) { $('#result').append("result in console"); console.log(authResult); } </script> </body> </html>
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|