Beroenden Externa Tjänster - 1DV611/effect-reklambyra GitHub Wiki
I detta dokument finner ni beskrivning kring de beroenden av externa tjänster som finns i applikationen, vad man behöver från dessa och hur de aktiveras.
.env och Environment variabler
För att hålla reda på alla credentials som krävs används dotenv
Filen med credentials finns i repot och är listad i .gitignore. Detta ska vara en fil namngiven som ".env" i projektets root. Denna innehåller alla credentials för externatjänster. Förslagsvis editeras den med nano direkt på servern. Den ska skapas som en textfil och innehålla följande:
BASE_URL=
SESSION_SECRET=
CRYPTOJS_SECRET=
AUTH0_CLIENT_ID=
AUTH0_DOMAIN=
AUTH0_CLIENT_SECRET=
AUTH0_MGMT_API_AT=
AUTH0_CALLBACK_URL=
GOOGLE_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
INSTAGRAM_CLIENT_ID=
INSTAGRAM_CLIENT_SECRET=
LINKEDIN_CLIENT_ID=
LINKEDIN_CLIENT_SECRET=
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN_KEY=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_OWNER=
TWITTER_OWNER_ID=
FACEBOOK_APP_ID=
FACEBOOK_APP_SECRET=
MOZ_ACCESS_ID=
MOZ_SECRET_KEY=
MLAB_CREDENTIAL_STRING=
Efter varje = skriver man alltså direkt det värde man fått från resp. beroende utan ".
###BASE_URL För att köra appen lokalt kan denna vara BASE_URL=http://localhost:3000. Vid produktion behöver denna alltså innehålla live server ip eller domän.
###SESSION_SECRET Används för att kryptera session cookies. Generera valfri string, längre är bättre.
###CRYPTOJS_SECRET Används för att kryptera delar av ApiAccess-objektet som är kopplat till varje användare. Generera valfri string, längre är bättre.
###AUTH_CALLBACK_URL För development: AUTH0_CALLBACK_URL=http://localhost:3000/callback. Tänk på att denna måste ha fullständigt url vid live.
###AUTH0_MGMT_API_AT Information om hur man skapar och hämtar token finns här: https://auth0.com/docs/api/management/v2/tokens
###MLAB_CREDENTIAL_STRING
Url inklusive användarnamn och lösenord. Du får ditt unika mlab url för varje databas du skapar och kan se det i ditt mlab interface enligt denna bild:
För detta exempel om ditt lösen är password och användarnamn är user och databasnamn apitest skriver du alltså MLAB_CREDENTIAL_STRING=mongodb://user:[email protected]:47069/apitest
Beroenden
Mlab
Detta är en tjänst som gör att ni slipper själva installera mongodb och kan köra databasen i molnet. Det gör att ni har enklare att välja hosting i framtiden. Det ger er även ett enkelt interface att skåda användardata i. Skapa ett gratis konto på mlab.com , därefter en databas, därefter en user och fyll i connection string enligt ovan.
auth0
Auth0 används för hantering av användare samt inloggning i applikationen. Vi har valt det som en extern tjänst för att ni ska få ett säkert inlogg och smidigt interface för att hantera era kunder samt lägga till nya. Auth0 stödjer även utökning av användarroller, för närvarande finns det Users och Admins enl. ursprunglig spec.
Auth0 används både på Klient och Server. På Klienten ligger auth0s lock.js script implementerat i login.handlebars.
För att aktivera auth0:
- Skapa ett konto
- Gå därefter till dashboard och create client, välj regular web application.
- In settings you will obtain CLIENT_ID and CLIENT_SECRET vilket behövs läggas in i .env
- Sätt token endpoint auth method till Post
- I allowed callback urls kan du lista live server och localhost om du vill utveckla lokalt:
Dessa måste alltså uppdateras för rätt live server. - allowed logouts urls ska vara http://localhost:3000/logout samt http://addressForLiveServer.com/logout
- För connections ska username-password-authentication vara aktiverat.
- Klicka därefter på extensions i högra menyn och aktivera auth0 authorization extension. Det är denna modul som används för att hantera multi tenancy, dvs user/admin och ev. framtida roller samt att skapa / ta bort användare.
Social Channels
Dessa har snarlik registreringsprocess. I princip är vad som behövs att du registererar applikationen med varje, får client_id och client_secret, ställer in vilka url appen kan användas (vilket är http://localhost:3000 samt ev. live server) och till vilken url de ska skicka credentials när auth går igenom. Alla dessa ligger konsekvent på http://appensaddress.com/auth/callback/google, /instagram, /facebook osv.
Google kommer därför beskrivas mer igående som ett demo. För varje kommer även ev. edge cases beskrivas.
Använd google cloud console för att aktivera googles tjänster.
- Välj select project och klicka sedan på + för att skapa.
- Välj ditt nyskapade projekt i listan, klicka därefter på menyn till vänster, sedan API Manager. Därefter behöver du klicka på och aktivera dessa APIer:
- AdSense Management API
- Analytics API
- Google Cloud Messaging
- Google+ API
- YouTube Analytics API
- Välj credentials i vänstermenyn, klicka på Create credentials, välj oauth2 credentials, spara ID och SECRET i .env
- Ställ in callback url till http://localhost:3000/auth/google/callback och eller liveserver url.
instagram developer Instagram använder en Sandbox i början vilket betyder att du bara kan få ut data för 10 användare som gått med på att vara i sandbox. För att komma ur den måste applikationen ligga live på ett icke-ip url och man behöver ansöka om att komma ur sandbox.
linkedin developer välj alla Default Application Permissions. Använd Oauth 1.0a eftersom vår passport-linkedin modul använder detta.