[ARCHIVED] What is "tool proxy guid" and correct "grant_type"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm trying to build an app that automatically tests user marks and sends emails for some users based on their marks. For that, I need to use the Web Hooks Subscriptions API and as stated in that document I have to use the JWT authentication. For that, I started testing method 2.0 mentioned in the JWT Access Tokens for LTI2 Tools document. But I'm facing few issues.
1. To create a signed JWT in need following data:
my_jwt = {
"sub": "123123-ad13-ac233", // tool proxy guid
"aud": "https://my.canvas-domain.com/api/lti/accounts/1/authorize", // authorization URL used for authorization request
"exp": 1486393868, // expiration time
"iat": 1486393800, // issued at
"jti": "688700c2-4bc1-40b7-83e5-7cbf54f93305" // Random UUID for request
}
But it is not clear what is "tool proxy grid"
2. I tried authorization code with test dummy values for above as follows:
const data = {
jti: '688700c2-4bc1-40b7-83e5-7cbf54f93305',
}
const token = jwt.sign(data, 'my-secret',{
algorithm: 'HS256',
expiresIn: '1h',
audience: '<my-custom-canvas-instance-url>/api/lti/accounts/1/authorize', // authorization URL used for authorization request
subject: '123123-ad13-ac233', // tool proxy guid
});
try {
const apiResp = await axios({
method: 'post',
url: '<my-custom-canvas-instance-url>/api/lti/accounts/1/authorize',
data: {
grant_type: 'authorization_code',
assertion: token,
},
});
console.log('apiResp : ', apiResp);
return res.status(200).send({ apiResp });
} catch (err) {
console.log('Something went wrong. Error : ', err.response.data.error);
return res.status(500).send({ error: err.response.data.error });
}
But it gives me an error saying "invalid_grant", So what should be the correct grant type?
3. For signing the above jwt token, what secret should I use, and where can I get it?
> 'my-secret' in the above code snippet.
I'm quite new to this domain and please help me. Thanks.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.