Store the token in local storage (#853)

Stores the token in local for any subsequent call to so the user doesn't need to sign in again after restarting their session
This commit is contained in:
sschutten 2019-05-04 17:02:39 +02:00 committed by Vesa Juvonen
parent a8f4e4f0c2
commit 500a566abd
1 changed files with 33 additions and 0 deletions

View File

@ -84,6 +84,11 @@ export default class YammerProvider implements IYammerProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
window.yam.connect.loginButton(selector, (res: any) => { window.yam.connect.loginButton(selector, (res: any) => {
if (res.authResponse) { if (res.authResponse) {
// Store the token in local storage for any subsequent call to Yammer
// so the user doesn't need to sign in again after restarting their
// browser session.
localStorage.setItem("yammerAuthToken", res.access_token.token);
resolve(res); resolve(res);
} else { } else {
reject(res); reject(res);
@ -92,6 +97,28 @@ export default class YammerProvider implements IYammerProvider {
}); });
} }
/**
* Yammer JavaScript SDK "login" function wrapper.
* See https://developer.yammer.com/docs/js-sdk.
*/
public login(): Promise<any> {
return new Promise((resolve, reject) => {
window.yam.platform.login((res: any) => {
if (res.authResponse) {
// Store the token in local storage for any subsequent call to Yammer
// so the user doesn't need to sign in again after restarting their
// browser session.
localStorage.setItem("yammerAuthToken", res.access_token.token);
resolve(res);
}
else {
reject(res);
}
});
});
}
/** /**
* Yammer JavaScript SDK "request" function wrapper. * Yammer JavaScript SDK "request" function wrapper.
* Public, but not recommended for extensive use. * Public, but not recommended for extensive use.
@ -135,6 +162,12 @@ export default class YammerProvider implements IYammerProvider {
*/ */
private _getLoginStatus(): Promise<any> { private _getLoginStatus(): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Apply the auth token we have stored in local storage
let token = localStorage.getItem("yammerAuthToken");
if (token) {
window.yam.platform.setAuthToken(token);
}
window.yam.getLoginStatus((res: any) => { window.yam.getLoginStatus((res: any) => {
if (res.authResponse) { if (res.authResponse) {
resolve(res); resolve(res);