Commit 5e28014

mo <mo.khan@gmail.com>
2018-04-09 17:57:41
display the qr code when show is clicked.
1 parent c4e230a
Changed files (3)
app
javascript
controllers
models
views
app/javascript/controllers/tfa_controller.js
@@ -1,12 +1,13 @@
 import { Controller } from 'stimulus'
-import Tfa from '../models/tfa'
+import QRCode from 'qrcode'
 
 export default class extends Controller {
   get secret() { return this.targets.find("secret") }
+  get canvas() { return this.targets.find("canvas") }
 
   present() {
-    //let tfa = new Tfa(this.secret.value);
-    //console.log(tfa.qr_code());
-    console.log("CLICKED");
+    QRCode.toCanvas(this.canvas, this.secret.value, (error) => {
+      if (error) console.error(error);
+    });
   }
 }
app/javascript/models/tfa.js
@@ -1,9 +0,0 @@
-export default class Tfa {
-  constructor(secret) {
-    this.secret = secret;
-  }
-
-  qr_code() {
-    return "hello world";
-  }
-}
app/views/tfas/new.html.erb
@@ -1,10 +1,11 @@
 <div class="container">
   <div class="row">
     <div class="col">
-      <h1>TFA Setup</h1>
+      <h1>Two Factor Authentication (TFA) - Setup</h1>
       <p><%= current_user.tfa_secret %></p>
       <p><%= current_user.tfa_provisioning_uri %></p>
       <%= form_for current_user, url: tfa_path, method: :post, data: { controller: 'tfa' } do |form| %>
+        <canvas id="canvas" data-target="tfa.canvas"></canvas>
         <%= form.button 'Show', type: 'button', class: 'btn', data: { action: 'click->tfa#present'  } %>
         <%= form.hidden_field :tfa_secret, data: { target: 'tfa.secret' } %>
         <%= form.submit "Save" %>