Support Google Sign-in client-side
TODO: Support Google Sign-in server-side Also: - Add Haskell to project's shell.nix - Add stubbed Main.hs and Spec.hs - Add common .ghci file
This commit is contained in:
parent
5f52077492
commit
1fc1087014
5 changed files with 53 additions and 1 deletions
|
@ -1,9 +1,12 @@
|
||||||
let
|
let
|
||||||
pkgs = import <nixpkgs> {};
|
pkgs = import /home/wpcarro/nixpkgs {};
|
||||||
in pkgs.mkShell {
|
in pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
elmPackages.elm
|
elmPackages.elm
|
||||||
elmPackages.elm-format
|
elmPackages.elm-format
|
||||||
elmPackages.elm-live
|
elmPackages.elm-live
|
||||||
|
(haskellPackages.ghcWithPackages (hpkgs: with hpkgs; [
|
||||||
|
hspec
|
||||||
|
]))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
2
website/sandbox/learnpianochords/src/server/.ghci
Normal file
2
website/sandbox/learnpianochords/src/server/.ghci
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
:set prompt "> "
|
||||||
|
:set -Wall
|
6
website/sandbox/learnpianochords/src/server/Main.hs
Normal file
6
website/sandbox/learnpianochords/src/server/Main.hs
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
module Main where
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = putStrLn "Working!"
|
13
website/sandbox/learnpianochords/src/server/Spec.hs
Normal file
13
website/sandbox/learnpianochords/src/server/Spec.hs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
module Spec where
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
import Test.Hspec
|
||||||
|
import Test.QuickCheck
|
||||||
|
import Control.Exception (evaluate)
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = hspec $ do
|
||||||
|
describe "Testing" $ do
|
||||||
|
it "is setup" $ do
|
||||||
|
True == True
|
28
website/sandbox/learnpianochords/src/server/index.html
Normal file
28
website/sandbox/learnpianochords/src/server/index.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>Google Sign-in</title>
|
||||||
|
<script src="https://apis.google.com/js/platform.js" async defer></script>
|
||||||
|
<meta name="google-signin-client_id" content="771151720060-buofllhed98fgt0j22locma05e7rpngl.apps.googleusercontent.com">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="g-signin2" data-onsuccess="onSignIn"></div>
|
||||||
|
<a href="#" onclick="signOut();">Sign out</a>
|
||||||
|
<script>
|
||||||
|
function onSignIn(googleUser) {
|
||||||
|
var profile = googleUser.getBasicProfile();
|
||||||
|
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
|
||||||
|
console.log('Name: ' + profile.getName());
|
||||||
|
console.log('Image URL: ' + profile.getImageUrl());
|
||||||
|
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
|
||||||
|
}
|
||||||
|
function signOut() {
|
||||||
|
var auth2 = gapi.auth2.getAuthInstance();
|
||||||
|
auth2.signOut().then(function () {
|
||||||
|
console.log('User signed out.');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue