Google oAuth2 for a device with rich UI capabilities
I am creating a device that needs access to a user's google drive to write data. The device, a photogrammetry rig, will only write data it sources to a specific folder.
The device runs on a Rasberry Pi and uses a mobile device's browser connected to the pi's WiFi to provide UI. The pi implements a "captive portal" and is connected to the internet via the ethernet jack. So the UI capabilities are "rich" (mobile browser). This also means that the standard redirect to localhost/127.0.0.1 will not work as the mobile device is rendering the page not the Raspberry Pi.
I'd rather not implement Google's oAuth2 device flow, I want to keep the sign in process as simple as possible for the user. The pi cannot provide a "verifiable domain" as it will be on a private network (with connectivity to the internet of course).
I've looked at the Javascript client option but from what I can tell there is a redirect URI back to localhost, it's just buried in the Google client code. I am running stretch-lite on the pi (no UI) and running a pretty standard Linux stack (Nginx/Python3/Gunicorn).
google-oauth
add a comment |
I am creating a device that needs access to a user's google drive to write data. The device, a photogrammetry rig, will only write data it sources to a specific folder.
The device runs on a Rasberry Pi and uses a mobile device's browser connected to the pi's WiFi to provide UI. The pi implements a "captive portal" and is connected to the internet via the ethernet jack. So the UI capabilities are "rich" (mobile browser). This also means that the standard redirect to localhost/127.0.0.1 will not work as the mobile device is rendering the page not the Raspberry Pi.
I'd rather not implement Google's oAuth2 device flow, I want to keep the sign in process as simple as possible for the user. The pi cannot provide a "verifiable domain" as it will be on a private network (with connectivity to the internet of course).
I've looked at the Javascript client option but from what I can tell there is a redirect URI back to localhost, it's just buried in the Google client code. I am running stretch-lite on the pi (no UI) and running a pretty standard Linux stack (Nginx/Python3/Gunicorn).
google-oauth
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36
add a comment |
I am creating a device that needs access to a user's google drive to write data. The device, a photogrammetry rig, will only write data it sources to a specific folder.
The device runs on a Rasberry Pi and uses a mobile device's browser connected to the pi's WiFi to provide UI. The pi implements a "captive portal" and is connected to the internet via the ethernet jack. So the UI capabilities are "rich" (mobile browser). This also means that the standard redirect to localhost/127.0.0.1 will not work as the mobile device is rendering the page not the Raspberry Pi.
I'd rather not implement Google's oAuth2 device flow, I want to keep the sign in process as simple as possible for the user. The pi cannot provide a "verifiable domain" as it will be on a private network (with connectivity to the internet of course).
I've looked at the Javascript client option but from what I can tell there is a redirect URI back to localhost, it's just buried in the Google client code. I am running stretch-lite on the pi (no UI) and running a pretty standard Linux stack (Nginx/Python3/Gunicorn).
google-oauth
I am creating a device that needs access to a user's google drive to write data. The device, a photogrammetry rig, will only write data it sources to a specific folder.
The device runs on a Rasberry Pi and uses a mobile device's browser connected to the pi's WiFi to provide UI. The pi implements a "captive portal" and is connected to the internet via the ethernet jack. So the UI capabilities are "rich" (mobile browser). This also means that the standard redirect to localhost/127.0.0.1 will not work as the mobile device is rendering the page not the Raspberry Pi.
I'd rather not implement Google's oAuth2 device flow, I want to keep the sign in process as simple as possible for the user. The pi cannot provide a "verifiable domain" as it will be on a private network (with connectivity to the internet of course).
I've looked at the Javascript client option but from what I can tell there is a redirect URI back to localhost, it's just buried in the Google client code. I am running stretch-lite on the pi (no UI) and running a pretty standard Linux stack (Nginx/Python3/Gunicorn).
google-oauth
google-oauth
asked Nov 12 '18 at 16:50
Harry C
1913
1913
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36
add a comment |
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266671%2fgoogle-oauth2-for-a-device-with-rich-ui-capabilities%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266671%2fgoogle-oauth2-for-a-device-with-rich-ui-capabilities%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
does the mobile browser have access to the Internet (ie. the RPi is acting as a bridge or a router)? If yes, then standard OAuth will work just fine.
– pinoyyid
Nov 12 '18 at 20:36