# Electron SDK Demo App Authorization Not Works. Error code 15

**URL:** <https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249>\
**Category:** Electron\
**Created:** [July 5, 2020, 10:11pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249 "2020-07-05T22:11:08Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![alex.erygin](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/alex.erygin/32/11460_2.png) [@alex.erygin](https://devforum.zoom.us/u/alex.erygin)\
**Post date:** [July 5, 2020, 10:11pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/1 "2020-07-05T22:11:09Z")

</div>

**Description**  
Token authorization does not work in the demo app. It returns error code 15. Token works fine and tested with Zoom API.

**Which version?**  
Latest.

**To Reproduce(If applicable)**  
Steps to reproduce the behavior:

1. Run the demo app.
2. Enter token.
3. Click the SDKAuth button.
4. See the error at the console output.

**Screenshots**  
If applicable, add screenshots to help explain your problem.

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/2/2252f2a381b709fcf36d0aeda65188d9fd04b69c.png)

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [July 10, 2020, 7:14am UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/2 "2020-07-10T07:14:50Z")

</div>

Hi @alex.erygin,

Thanks for using Zoom SDK. We have followed the steps you provided but unfortunately we are not able to reproduce this error. May I ask how do you generate your JWT token? Could you provide the payload(Without the keys & secret)?

Thanks!

---

<div class="post-metadata">

**Author:** ![arrayxs](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arrayxs](https://devforum.zoom.us/u/arrayxs)\
**Post date:** [July 11, 2020, 6:25am UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/3 "2020-07-11T06:25:24Z")

</div>

- I’ve solved that, and the JWT of the SDK must be implemented by you

---

<div class="post-metadata">

**Author:** ![desko27](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/desko27/32/8296_2.png) [@desko27](https://devforum.zoom.us/u/desko27)\
**Post date:** [July 11, 2020, 8:24pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/4 "2020-07-11T20:24:28Z")

</div>

@alex.erygin you need to get SDK Key and Secret for Desktop SDKs, then generate JWT token yourself with them.

Your JWT token works for Zoom API because it’s built from Zoom API Key and Secret and will not work for Desktop SDKs.

---

<div class="post-metadata">

**Author:** ![alex.erygin](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/alex.erygin/32/11460_2.png) [@alex.erygin](https://devforum.zoom.us/u/alex.erygin)\
**Post date:** [July 12, 2020, 6:36pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/5 "2020-07-12T18:36:10Z")

</div>

Hi @carson.zoom! Thank you for response.  
My payload:  
{  
“iss”: “LusO7a1SjEHYeJ5eb2CXiMzLmNiLffmonUix”,  
“exp”: “1594837372”  
}

---

<div class="post-metadata">

**Author:** ![alex.erygin](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/alex.erygin/32/11460_2.png) [@alex.erygin](https://devforum.zoom.us/u/alex.erygin)\
**Post date:** [July 15, 2020, 7:30am UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/6 "2020-07-15T07:30:56Z")

</div>

@desko27, can you provide payload example? I Use SDK Key and Secret, but it is still not work. I think problem is wrong payload.

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [July 16, 2020, 7:23am UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/7 "2020-07-16T07:23:53Z")

</div>

Hi @alex.erygin,

Thanks for the reply. Yes, the JWT and the payload requires a specific format, here is an example:

- Header

```auto
{
  "alg": "HS256",
  "typ": "JWT"
}

```

- Payload

```auto
{
	  "appKey": "string", // Your SDK key
         "iat": long, // access token issue timestamp
         "exp": long, // access token expire timestamp
         "tokenExp": long // token expire timestamp, MIN:30 minutes
}

```

- Signature

```auto
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  "Your SDK secret here"
)

```

You may find the info in [https://github.com/zoom/zoom-sdk-electron/blob/master/CHANGELOG.md](https://github.com/zoom/zoom-sdk-electron/blob/master/CHANGELOG.md).  
Please have a try. Thanks!

---

<div class="post-metadata">

**Author:** ![desko27](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/desko27/32/8296_2.png) [@desko27](https://devforum.zoom.us/u/desko27)\
**Post date:** [July 17, 2020, 1:03pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/8 "2020-07-17T13:03:19Z")

</div>

Also, the `jsonwebtoken` npm package is really useful to handle JWT generation.

This is what works for me:

```
const jwt = require('jsonwebtoken')

const ZOOM_SDK_KEY = 'your zoom sdk key'
const ZOOM_SDK_SECRET = 'your zoom sdk secret'

// make jwt token from sdk key and secret
const timestampIssued = Math.floor(Date.now() / 1000) - 60 // ms -> s
const timestampExpires = timestampIssued + 86400 // 24h
const token = jwt.sign(
  {
    appKey: ZOOM_SDK_KEY,
    iat: timestampIssued,
    exp: timestampExpires,
    tokenExp: timestampExpires
  },
  ZOOM_SDK_SECRET,
  {
    header: {
      alg: 'HS256',
      typ: 'JWT'
    }
  }
)
```

---

<div class="post-metadata">

**Author:** ![carson.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/carson.zoom/32/785_2.png) [@carson.zoom](https://devforum.zoom.us/u/carson.zoom)\
**Post date:** [July 18, 2020, 6:01am UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/9 "2020-07-18T06:01:25Z")

</div>

Thanks for sharing this! 😄

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 10:46pm UTC](https://devforum.zoom.us/t/electron-sdk-demo-app-authorization-not-works-error-code-15/23249/10 "2020-08-21T22:46:13Z")

</div>

Closed on August 21, 2020, 10:46pm UTC


