The Play Silhouette Angular Seed project shows how Silhouette can be used to create a SPA with AngularJS/Satellizer and Play scaffolded by yeoman. It's a starting point which can be extended to fit your needs.
(The "Build App" phase will take a few minutes)
Or you can find a running example of this template under the following URL: https://play-silhouette-angular-seed.herokuapp.com/
- Sign Up
- Sign In (Credentials)
- JWT authentication
- Social Auth (Facebook, Google+, Twitter)
- Dependency Injection with Guice
- Publishing Events
- Avatar service
Consulate the Silhouette documentation for more information. If you need help with the integration of Silhouette into your project, don't hesitate and ask questions in our mailing list or on Stack Overflow.
Then you must install the node packages yo, grunt and bower:
npm install -g yo grunt grunt-cli bower
And the ruby packages sass and compass:
gem install sass compass
Alternative you can use Bundler to install the ruby packages:
bundle install -j4 --path .bundle
- Configure social providers
To configure the social providers for Satellizer, Open the file "~\ui\app\scripts\app.js" and input your providers clientId
:
// Facebook
$authProvider.facebook({
clientId: 'your-client-id',
...
});
// Google
$authProvider.google({
clientId: 'your-client-id',
...
});
...
If you are using Heroku Update the "~\app.json" file with your client secret and client ID.
"env": {
"BUILDPACK_URL": "https://github.com/heroku/heroku-buildpack-multi",
"NPM_CONFIG_PRODUCTION": "false",
"PLAY_CONF_FILE": "application.conf",
"PLAY_APP_SECRET": "changeme",
"FACEBOOK_CLIENT_ID": "",
"FACEBOOK_CLIENT_SECRET": "",
"GOOGLE_CLIENT_ID": "",
"GOOGLE_CLIENT_SECRET": "",
"TWITTER_CONSUMER_KEY": "",
"TWITTER_CONSUMER_SECRET": ""
}
To test social providers on localhost, you can either set your system environment variables as defined in the app.json "env" section or manually update the "~\conf\silhouette.conf" file directly with your client ID and client secret.
# Google provider
google.accessTokenURL="https://accounts.google.com/o/oauth2/token"
google.redirectURL="http://localhost:9000"
google.clientID="your-client-id"
google.clientSecret="your-client-secret"
google.scope="profile email"
- Start sbt and run the following:
$ update
$ npm install
$ bower install
$ grunt build
$ run
- In the activator console enter
eclipse with-sources=true
- Open eclipse and import the project using the "General/Existing project into workspace" importer.
- Install the angularJs plugin
- Apply the angularJs nature to the project: right-click the project, left-click "configure", left-click "Convert to angular project". This step should add the "org.eclipse.wst.jsdt.core.jsNature", but sometimes that requires a restart.
- Open the project properties dialog, select the "javaScript/Include Path" tab, and add all the relevant java script folders/files. Note: By default, eclipse adds the project root as a script folder. Remove it to speed up the script validations.
- In "conf/application.conf" file, edit the "yeoman.devDirs" entry to include the play "app" package folder, like so: yeoman.devDirs=["ui/.tmp", "ui/app", "app"]
See https://typesafe.com/activator/template/play-silhouette-angular-seed
The code is licensed under Apache License v2.0.