Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // requires https.js
- function AccessToken() {}
- AccessToken.prototype = {
- get isExpired () {
- return this.expiresIn && Date.now() > this.created + this.expiresIn * 1000;
- },
- fromResponse: function(response) {
- this.accessToken = response.access_token;
- this.email = response.email;
- this.expiresIn = response.expires_in;
- this.secret = response.secret;
- this.userId = response.user_id;
- this.created = Date.now();
- return this;
- },
- /*
- var token = new AccessToken().fromJSON('{"access_token":"533bacf01e11f55b536a565b57531ac114461ae8736d6506a3","expires_in":43200, "user_id":6492}');
- console.log(token.isExpired); // false
- token.created = 0;
- console.log(token.isExpired); // true
- */
- /*
- fromJSON: function(str) {
- return this.fromResponse(JSON.parse(str));
- },
- // var token = new AccessToken().fromHash("http://REDIRECT_URI#access_token=533bacf01e11f55b536a565b57531ad114461ae8736d6506a3&expires_in=86400&user_id=8492")
- fromHash: function(url) {
- var hash = url.replace(/.*#/, '');
- var response = parseQueryString(hash);
- if (response.expires_in) {
- response.expires_in = parseInt(response.expires_in);
- }
- if (response.user_id) {
- response.user_id = parseInt(response.user_id);
- }
- return this.fromResponse(response);
- },
- */
- SERIALIZED_PROPERTIES: ['accessToken', 'created', 'email', 'expiresIn',
- 'secret', 'userId'],
- // localStorage.setItem('access_token', accessToken.serialize())
- serialize: function() {
- var self = this;
- var o = {};
- self.SERIALIZED_PROPERTIES.forEach(function(p) {
- if (self[p] != null) {
- o[p] = self[p];
- }
- });
- return JSON.stringify(o);
- },
- /*
- var token = new AccessToken();
- var serialized = localStorage.getItem('access_token');
- if (serialized) {
- token.parse(serialized);
- }
- */
- parse: function(serialized) {
- var self = this;
- var o = JSON.parse(serialized);
- self.SERIALIZED_PROPERTIES.forEach(function(p) {
- self[p] = o[p];
- });
- return self;
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement