"template": "login_oauth2"
This view can be used for devices that need OAuth2 authorization. When it's successful, it will automatically proceed to the next view.
Example
/app.json
{
"id": "com.athom.testsuite",
"drivers": [
{
"id": "my_driver",
"pair": [
{
"id": "login_oauth2",
"template": "login_oauth2"
},
{
"id": "list_devices",
"template": "list_devices_singular",
"navigation": {
"next": "add_devices"
}
},
{
"id": "add_devices",
"template": "add_devices"
}
]
},
...
/drivers/<driver_id>/driver.js
const Homey = require('homey');
class MyDriver extends Homey.Driver {
onPair( socket ) {
let apiUrl = 'https://api.myservice.com/oauth2/authorise?response_type=code&client_id=' + Homey.env.CLIENT_ID + '&redirect_uri=https://callback.athom.com/oauth2/callback/'
let myOAuth2Callback = new Homey.CloudOAuth2Callback(apiUrl)
myOAuth2Callback
.on('url', url => {
// dend the URL to the front-end to open a popup
socket.emit('url', url);
})
.on('code', code => {
// ... swap your code here for an access token
// tell the front-end we're done
socket.emit('authorized');
})
.generate()
.catch( err => {
socket.emit('error', err);
})
}
}
This pair template works best with the homey-oauth2app module.
Options
Key | Type | Default | Description |
---|---|---|---|
hint |
i18n-object | `` | |
button |
i18n-object | "Log-in" |
When either
hint
orbutton
are set to a value, a button will appear and wait for the user to click it before opening the popup.