Initial Auth integration

This commit is contained in:
Barry Low committed 2018-10-11 14:53:58 -07:00
1 parent 27c32184b2
commit 401fb88e0e
8 files changed
+53 -158

No files matched your search

+13 -151
View File
@@ -31,66 +31,6 @@
"recompose": "^0.30.0"
}
},
"@advancedalgos/teams-client": {
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/@advancedalgos/teams-client/-/teams-client-0.0.16.tgz",
"integrity": "sha512-55P/wZTq5ZnR+3JvLyaeLUDP/Bcym/oZDGtC7muObdl9dT3MfvCBqZxnNuZWk33NeHYs3m0pDWdSXIMRFr8QYg==",
"requires": {
"@advancedalgos/web-components": "0.0.10",
"@azure/storage-blob": "^10.0.0-preview",
"@material-ui/core": "^3.2.0",
"@material-ui/icons": "^3.0.1",
"apollo-cache-inmemory": "^1.3.5",
"apollo-client": "^2.4.2",
"apollo-link": "^1.2.3",
"apollo-link-context": "^1.0.9",
"apollo-link-error": "^1.1.1",
"apollo-link-http": "^1.5.5",
"apollo-link-ws": "^1.0.9",
"apollo-utilities": "^1.0.21",
"auth0-lock": "^11.10.0",
"babel-polyfill": "^6.26.0",
"blob-util": "^2.0.2",
"classnames": "^2.2.6",
"cross-fetch": "^2.2.2",
"dotenv-webpack": "^1.5.7",
"graphql": "^0.13.2",
"graphql-tag": "^2.10.0",
"minilog": "^3.1.0",
"prop-types": "^15.6.2",
"query-string": "^6.2.0",
"react": "^16.5.2",
"react-apollo": "^2.2.4",
"react-dom": "^16.5.2",
"react-router-dom": "^4.3.1",
"recompose": "^0.30.0",
"subscriptions-transport-ws": "^0.9.15"
},
"dependencies": {
"graphql": {
"version": "0.13.2",
"resolved": "http://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz",
"integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==",
"requires": {
"iterall": "^1.2.1"
}
},
"query-string": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-6.2.0.tgz",
"integrity": "sha512-5wupExkIt8RYL4h/FE+WTg3JHk62e6fFPWtAZA9J5IWK1PfTfKkMS93HBUHcFpeYi9KsY5pFbh+ldvEyaz5MyA==",
"requires": {
"decode-uri-component": "^0.2.0",
"strict-uri-encode": "^2.0.0"
}
},
"strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
}
}
},
"@advancedalgos/web-components": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/@advancedalgos/web-components/-/web-components-0.0.10.tgz",
@@ -109,18 +49,18 @@
"react-dropzone": "^5.1.0",
"react-image-crop": "^5.0.0",
"react-image-cropper": "^1.3.0"
}
},
"@azure/storage-blob": {
"version": "10.1.0-preview",
"resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.1.0-preview.tgz",
"integrity": "sha512-vKY4dF8VCRCOOQ03Z1ResyjZbWg4jPOnQtRtlSEKE6a7WwFE3EuIbhE7OQfEihuNYyE+XWLkTjrHxeHDFx1hFg==",
"requires": {
"events": "3.0.0",
"ms-rest-js": "0.22.425",
"tslib": "^1.9.3"
},
"dependencies": {
"@azure/storage-blob": {
"version": "10.1.0-preview",
"resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.1.0-preview.tgz",
"integrity": "sha512-vKY4dF8VCRCOOQ03Z1ResyjZbWg4jPOnQtRtlSEKE6a7WwFE3EuIbhE7OQfEihuNYyE+XWLkTjrHxeHDFx1hFg==",
"requires": {
"events": "3.0.0",
"ms-rest-js": "0.22.425",
"tslib": "^1.9.3"
}
},
"events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
@@ -128,52 +68,6 @@
}
}
},
"@azure/storage-blob": {
"version": "10.0.0-preview",
"resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.0.0-preview.tgz",
"integrity": "sha512-PFXKm+gipKDfg5h08hPiEr0Za4RMiFzzte+ewh4ACZeRQa0XZK55NAZxW67ZytGBd7WXdQq6pcAgo5dBnwQANQ==",
"requires": {
"ms-rest-js": "0.21.413"
},
"dependencies": {
"@types/node": {
"version": "9.6.35",
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.35.tgz",
"integrity": "sha512-h5zvHS8wXHGa+Gcqs9K8vqCgOtqjr0+NqG/DDJmQIX1wpR9HivAfgV8bjcD3mGM4bPfQw5Aneb2Pn8355L83jA=="
},
"ms-rest-js": {
"version": "0.21.413",
"resolved": "https://registry.npmjs.org/ms-rest-js/-/ms-rest-js-0.21.413.tgz",
"integrity": "sha512-eX+M98Y9s+zo85Unt83TYkpuJkW4d0wuiHrpWjAxx/7YzZd3uVq8HRhJHXGDqCd22nlEvtwlchfgwILmBcWnOg==",
"requires": {
"@types/express": "^4.11.1",
"@types/form-data": "^2.2.1",
"@types/node": "^9.4.6",
"@types/uuid": "^3.4.3",
"axios": "^0.18.0",
"form-data": "^2.3.2",
"tough-cookie": "^2.4.3",
"tslib": "^1.9.2",
"uuid": "^3.2.1",
"xml2js": "^0.4.19"
}
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
}
}
}
},
"@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
@@ -4462,27 +4356,6 @@
"object-assign": "^4.1.1"
}
},
"cross-fetch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz",
"integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=",
"requires": {
"node-fetch": "2.1.2",
"whatwg-fetch": "2.0.4"
},
"dependencies": {
"node-fetch": {
"version": "2.1.2",
"resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
"integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U="
},
"whatwg-fetch": {
"version": "2.0.4",
"resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
}
}
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -5167,7 +5040,8 @@
"dotenv": {
"version": "5.0.1",
"resolved": "http://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
"integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow=="
"integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
"dev": true
},
"dotenv-expand": {
"version": "4.2.0",
@@ -5178,6 +5052,7 @@
"version": "1.5.7",
"resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.5.7.tgz",
"integrity": "sha1-xEOVqyHR/SjXmpCUKnsUsd69FF8=",
"dev": true,
"requires": {
"dotenv": "^5.0.1"
}
@@ -11170,11 +11045,6 @@
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"microee": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz",
"integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4="
},
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -11227,14 +11097,6 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
},
"minilog": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz",
"integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=",
"requires": {
"microee": "0.0.6"
}
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+2
View File
@@ -67,6 +67,7 @@
"dependencies": {
"@advancedalgos/key-vault-client": "0.0.5",
"@advancedalgos/teams-client": "file:.yalc/@advancedalgos/teams-client",
"@advancedalgos/web-components": "0.0.10",
"@babel/runtime": "^7.1.2",
"@material-ui/core": "^3.2.0",
"@material-ui/icons": "^3.0.1",
@@ -82,6 +83,7 @@
"babel-polyfill": "^6.26.0",
"graphql": "^14.0.2",
"graphql-tag": "^2.10.0",
"prop-types": "^15.6.2",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-router-dom": "^4.3.1",
+8 -1
View File
@@ -19,7 +19,7 @@ export const auth = new Auth(
result => console.log('auth result', result),
client
)
console.log(Header)
export const MasterApp = () => (
<BrowserRouter>
<ApolloProvider client={client}>
@@ -29,6 +29,13 @@ export const MasterApp = () => (
<Header auth={auth} />
<Switch>
<Route exact path='/' component={Home} />
<Route
path='/callback'
render={props => {
auth.handleAuthentication(props)
return <Callback {...props} />
}}
/>
<Route
exact
path='/teams'
+1 -1
View File
@@ -10,7 +10,7 @@ import { AUTH_CONFIG } from './Auth0' // create by renaming Auth0.sample.js to A
const AUTHENTICATE = gql`
mutation authenticate($idToken: String!) {
authenticate(idToken: $idToken) {
TeamsModuleauthenticate(idToken: $idToken) {
alias
authId
}
+6 -4
View File
@@ -4,8 +4,8 @@ import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloLink, split, Observable } from 'apollo-link'
import { onError } from 'apollo-link-error'
import { setContext } from 'apollo-link-context'
import { WebSocketLink } from 'apollo-link-ws'
import { SubscriptionClient } from 'subscriptions-transport-ws'
// import { WebSocketLink } from 'apollo-link-ws'
// import { SubscriptionClient } from 'subscriptions-transport-ws'
import { getMainDefinition } from 'apollo-utilities'
import { getItem } from '../utils/local-storage'
@@ -15,6 +15,7 @@ const graphqlEndpoint =
? process.env.PROD_GRAPHQL
: process.env.DEV_GRAPHQL
/*
const wsUri = graphqlEndpoint.replace(/^http/, 'ws')
const globalVar =
@@ -23,6 +24,7 @@ const globalVar =
: typeof window !== 'undefined'
? window
: {}
const webSocketImpl = globalVar.WebSocket || globalVar.MozWebSocket
const wsClient = new SubscriptionClient(
@@ -40,7 +42,7 @@ wsClient.onDisconnected(() => {
wsClient.onReconnected(() => {
// console.log('onReconnected')
})
*/
const httpLink = new HttpLink({ uri: graphqlEndpoint })
const link = split(
@@ -48,7 +50,7 @@ const link = split(
const { kind, operation } = getMainDefinition(query)
return kind === 'OperationDefinition' && operation === 'subscription'
},
new WebSocketLink(wsClient),
// new WebSocketLink(wsClient),
httpLink
)
+7
View File
@@ -0,0 +1,7 @@
import React from 'react'
import { MessageCard } from '@advancedalgos/web-components'
const Callback = () => <MessageCard message='Authenticating...' />
export default Callback
+15
View File
@@ -0,0 +1,15 @@
import React from 'react'
import PropTypes from 'prop-types'
import Button from '@material-ui/core/Button'
export const LoggedOut = ({ auth }) => (
<div onClick={() => auth.login()}>
<Button color='inherit'>Login / Sign up</Button>
</div>
)
LoggedOut.propTypes = {
auth: PropTypes.object.isRequired
}
export default LoggedOut
+1 -1
View File
@@ -93,7 +93,7 @@ class Header extends Component {
color='inherit'
className={classes.toolbarTitle}
>
Teams
&nbsp;
</Typography>
<IconButton