私は Mailgun ノード machine-pack を使用して、machinepack-jwt を使用して作成された JWT を含む URL を含む電子メールを送信しています。生成された電子メールでユーザーが「確認」をクリックすると、JWT をデコードしたい Sails コントローラー メソッドにヒットします。
値として空の文字列を持つプロパティを持つオブジェクトを取得し続けます。
参考までに: node-machine machinepack-jwtを使用してエンコードとデコードを行っています。質問にそのようにタグ付けしようとしましたが、このタグは使用可能なタグになく、必要な 1500 担当者ポイントがありません
私の帆コントローラー:
module.exports = {
//Encode method
signup: function (req, res){
if (!req.param('serviceManager')) {
res.badRequest('Missing required parameter!');
} else {
var Mailgun = require('machinepack-mailgun');
var JWT = require('machinepack-jwt');
var newUser = req.param('serviceManager');
JWT.encode({
secret: 'my_secret',
algorithm: 'my_algo',
expires: 2880, //in minutes(two days)
payload: newUser.email + ':' + newUser.password
}).exec({
error: function (err){
console.log(err);
},
success : function (authToken){
Mailgun.sendHtmlEmail({//my Mailgun send with template that has authToken in it});
//Decode method
confirm_email: function (req, res){
if (!req.params[0]) {
res.badRequest('Missing required parameter!');
} else {
var JWT = require('machinepack-jwt');
var authToken = req.params[0];
console.log(authToken);
JWT.decode({
secret: 'my_secret',
token: authToken,
algorithm: 'my_algo'
}).exec({
error: function (err) {
res.send(err);
},
success: function (decodedToken) {
res.view('emailconfirmed');
console.log(decodedToken);// returns { id: '', email: '', role: '', sessionId: '' }
}
});
}
}
私が期待しているのは、送信された JWT でエンコードしたユーザーの電子メールとパスワードです。