The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/blockstack/client/routes.js

44 lines
1.1 KiB

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { FlowRouter } from 'meteor/kadira:flow-router';
const blockstackLogin = (authResponse, userData = {}) => {
Accounts.callLoginMethod({
methodArguments: [{
blockstack: true,
authResponse,
userData,
}],
userCallback() {
FlowRouter.go('home');
},
});
};
FlowRouter.route('/_blockstack/validate', {
name: 'blockstackValidate',
async action(params, queryParams) {
const blockstack = await import('blockstack/dist/blockstack');
if (Meteor.userId()) {
console.log('Blockstack Auth requested when already logged in. Reloading.');
return FlowRouter.go('home');
}
if (queryParams.authResponse == null) {
throw new Meteor.Error('Blockstack: Auth request without response param.');
}
let userData;
if (blockstack.isUserSignedIn()) {
userData = blockstack.loadUserData();
}
if (blockstack.isSignInPending()) {
userData = await blockstack.handlePendingSignIn();
}
blockstackLogin(queryParams.authResponse, userData);
},
});