O que é a Chave Móvel Digital?

A Chave Móvel Digital (CMD) é um meio de autenticação e assinatura digital certificado pelo Estado português. Permite ao utilizador aceder a vários portais públicos ou privados, e assinar documentos digitais, com um único login.

A Chave Móvel Digital associa um número de telemóvel ao número de identificação civil para um cidadão português, e o número de passaporte ou título/cartão de residência para um cidadão estrangeiro.

Como autenticar-se com Chave Móvel Digital

Com a Chave Móvel Digital é possível autenticar-se utilizando apenas o número de telemóvel e o PIN da CMD, certificando o login com um código temporário que recebe via SMS ou outros meios.

Assinar documentos digitais com Chave Móvel Digital

Ocorreu um erro ao processar o template.
The following has evaluated to null or missing:
==> col3Subtitle  [in template "20099#20135#37060" at line 125, column 107]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${col3Subtitle.getData()}  [in template "20099#20135#37060" at line 125, column 105]
----
1<div class="autgov-modal-xl"> 
2    <div role="dialog" id="main-cmd-modal" class="modal hidden col-sm-11" aria-labelledby="main-cmd-modal-label" 
3        aria-modal="true"> 
4 
5        <!------------> 
6        <!-- HEADER --> 
7        <!------------> 
8 
9        <!-- HEADER --> 
10        <div class="row col-md-12 justify-content-between"> 
11 
12            <!-- TITLE --> 
13            <div class="col-xs-9"> 
14                <h2 tabindex="0" id="main-cmd-modal-label" class="modal-title"> 
15                    ${title.getData()} 
16                </h2> 
17            </div> 
18 
19            <!-- CLOSE BUTTON --> 
20            <div class="col-xs-1 modal-close"> 
21                <button aria-label="Fechar" title="Fechar" class="btn icon-center icon-black-close" 
22                    onclick="closeDialog(this);"></button> 
23            </div> 
24 
25        </div> 
26 
27        <div id="main-cmd-content-container"> 
28 
29            <!-- CONTENT --> 
30            <div class="col-sm-12 row justify-content-center"> 
31 
32                <!-- CONTENT - ONLINE --> 
33                <div id="cmd-content-online" class="modal-cmd-column col-sm-12 row justify-content-between"> 
34 
35                    <!-- CONTENT ONLINE - TITLE --> 
36                    <div tabindex="0" id="content-online-title">ONLINE</div> 
37 
38                    <!-- CONTENT ONLINE - COL-1 App --> 
39                    <div id="content-online-autgov" 
40                        class="content-online-column col-sm-3 d-flex flex-column justify-content-between"> 
41 
42                        <div class="modal-content-container"> 
43 
44                            <!-- CONTENT ONLINE App- TITLE --> 
45                            <div tabindex="0" id="online-autgov-title" class="modal-cmd-title">${col1Title.getData()}</div> 
46 
47                            <div class="modal-cmd-desc-container"> 
48 
49                                <!-- CONTENT ONLINE App - SUBTITLE --> 
50                                <div tabindex="0" id="online-autgov-subtitle" class="modal-cmd-subtitle"> 
51                                    <p><span class="modal-cmd-subtitle-icon" aria-hidden="true">■</span>${col1Subtitle.getData()}</p> 
52                                </div> 
53 
54                                <!-- CONTENT ONLINE App - DESC --> 
55                                <div tabindex="0" id="online-autgov-desc" class="cmd-online-description">${col1Desc.getData()} 
56                                </div> 
57 
58                            </div> 
59 
60                        </div> 
61 
62                    </div> 
63 
64                    <!-- CONTENT ONLINE - COL-2 - AutGov --> 
65                    <div id="content-online-financas" 
66                        class="content-online-column col-sm-3 d-flex flex-column justify-content-between"> 
67 
68                        <div class="modal-content-container"> 
69 
70                            <!-- CONTENT ONLINE COL-2 - AutGov - TITLE --> 
71                            <div tabindex="0" id="online-financas-title" class="modal-cmd-title">${col2Title.getData()}</div> 
72 
73                            <div class="modal-cmd-desc-container"> 
74 
75                                <!-- CONTENT ONLINE COL-2 - AutGov - SUBTITLE --> 
76                                <div tabindex="0" id="online-financas-subtitle" class="modal-cmd-subtitle"> 
77                                    <p><span class="modal-cmd-subtitle-icon" aria-hidden="true">■</span>${col2Subtitle.getData()}</p> 
78                                </div> 
79 
80                                <!-- CONTENT ONLINE COL-2 - AutGov - DESC --> 
81                                <div tabindex="0" id="online-financas-desc" class="cmd-online-description">${col2Desc.getData()} 
82                                </div> 
83 
84                            </div> 
85 
86                        </div> 
87 
88                        <div> 
89                            <#if getterUtil.getBoolean(isCol2RedirectFora.getData())> 
90                                <!-- CONTENT ONLINE COL-2 - AutGov - REDIRECT BUTTON --> 
91                                <div id="financas-redirect-btn" class="button-container">  
92                                    <button onclick="validateRedirect('autgov-modal-cmd', 'cmd', 'cmd', true, '/area-privada/ativacao-da-minha-cmd')" class="btn btn-primary icon-right icon-white-right-arrow">${col2RedirectBtnName.getData()}</button> 
93                                </div> 
94                            <#else> 
95                                <!-- CONTENT ONLINE COL-2 - AutGov - REDIRECT BUTTON --> 
96                                <div id="financas-redirect-btn" class="button-container">  
97                                    <button onclick="validateRedirect('autgov-modal-cmd', 'cmd', 'cmd', true, '/area-privada/ativacao-da-minha-cmd')" class="btn btn-primary icon-right icon-white-right-arrow">${col2RedirectBtnName.getData()}</button> 
98                                </div> 
99                            </#if> 
100                            <!-- CONTENT ONLINE COL-2 - AutGov - INFO BUTTON --> 
101                            <div id="financas-info-btn" class="button-container"> 
102                                <a class="btn btn-secondary" onclick="closeDialog(this);" 
103                                    href="${col2InfoBtnLink.getFriendlyUrl()}">${col2InfoBtnName.getData()}</a> 
104                            </div> 
105 
106                             
107 
108                        </div> 
109 
110                    </div> 
111 
112                    <!-- CONTENT ONLINE - COL-3 - FINANCAS --> 
113                    <div id="content-online-3" 
114                        class="content-online-column col-sm-3 d-flex flex-column"> 
115 
116                        <div class="modal-content-container"> 
117 
118                            <!-- CONTENT ONLINE FINANCAS - TITLE --> 
119                            <div tabindex="0" id="online-3-title" class="modal-cmd-title">${col3Title.getData()}</div> 
120 
121                            <div class="modal-cmd-desc-container"> 
122 
123                                <!-- CONTENT ONLINE FINANCAS - SUBTITLE --> 
124                                <div tabindex="0" id="online-3-subtitle" class="modal-cmd-subtitle"> 
125                                    <p><span class="modal-cmd-subtitle-icon" aria-hidden="true">■</span>${col3Subtitle.getData()}</p> 
126                                </div> 
127 
128                                <!-- CONTENT ONLINE FINANCAS - DESC --> 
129                                <div tabindex="0" id="online-3-desc" class="cmd-online-description">${col3Desc.getData()} 
130                                </div> 
131 
132                            </div> 
133 
134                        </div> 
135 
136                        <div> 
137                            <#if getterUtil.getBoolean(isCol3RedirectFora.getData())> 
138                                <!-- CONTENT ONLINE 3 - REDIRECT BUTTON --> 
139                                <div id="3-redirect-btn" class="button-container"> 
140                                    <a class="btn btn-primary icon-right icon-white-right-arrow" target="_blank" 
141                                        href="${col3RedirectForaBtnLink.getData()}">${col3RedirectBtnName.getData()}</a> 
142                                </div> 
143                                <#else> 
144                                    <!-- CONTENT ONLINE 3 - REDIRECT BUTTON --> 
145                                    <div id="3-redirect-btn" class="button-container"> 
146                                        <a target="_blank" href="${col3RedirectBtnLink.getFriendlyUrl()}" 
147                                            class="btn btn-primary icon-right icon-white-right-arrow">${col3RedirectBtnName.getData()}</a> 
148                                    </div> 
149                            </#if> 
150                            <!-- CONTENT ONLINE 3 - INFO BUTTON --> 
151                            <div id="3-info-btn" class="button-container"> 
152                                <a class="btn btn-secondary" onclick="closeDialog(this);" 
153                                    href="${col3InfoBtnLink.getFriendlyUrl()}">${col3InfoBtnName.getData()}</a> 
154                            </div> 
155 
156                        </div> 
157 
158                    </div> 
159 
160                    <!-- CONTENT ONLINE - COL-4 --> 
161                    <div id="content-online-4" 
162                        class="content-online-column col-sm-3 d-flex flex-column justify-content-between"> 
163 
164                        <div class="modal-content-container"> 
165 
166                            <!-- CONTENT ONLINE COL-4 - TITLE --> 
167                            <div tabindex="0" id="online-4-title" class="modal-cmd-title">${col4Title.getData()}</div> 
168 
169                            <div class="modal-cmd-desc-container"> 
170 
171                                <!-- CONTENT ONLINE COL-4 - SUBTITLE --> 
172                                <div tabindex="0" id="online-4-subtitle" class="modal-cmd-subtitle"> 
173                                    <p><span class="modal-cmd-subtitle-icon" aria-hidden="true">■</span>${col4Subtitle.getData()}</p> 
174                                </div> 
175 
176                                <!-- CONTENT ONLINE COL-4 - DESC --> 
177                                <div tabindex="0" id="online-4-desc" class="cmd-online-description">${col4Desc.getData()} 
178                                </div> 
179 
180                            </div> 
181 
182                        </div> 
183 
184                    </div> 
185 
186                </div> 
187 
188            </div> 
189 
190        </div> 
191 
192        <!-- MODAL FOOTER --> 
193        <div id="modal-cmd-footer" class="modal-footer col-sm-12"> 
194            ${footerDesc.getData()} 
195        </div> 
196 
197    </div> 
198</div> 
199<style> 
200#content-online-autgov, #content-online-financas, #content-online-3 { 
201    border-right: 1px solid #E6E7E8; 
202
203#autenticacao-container .autgov-modal-xl [role="alertdialog"], #autenticacao-container .autgov-modal-xl [role="dialog"] { 
204    min-width: unset; 
205    width: 90%; 
206
207 
208#autenticacao-container .cmd-online-description, #autenticacao-container #online-financas-desc { 
209    padding: 0 70px; 
210    text-align: left; 
211    margin-bottom: 30px; 
212
213 
214#autenticacao-container .modal-cmd-subtitle { 
215    text-align: left; 
216    padding: 0px 70px; 
217
218 
219#autenticacao-container .modal-cmd-title { 
220    text-align: center; 
221    padding: 0 10px; 
222
223 
224#autenticacao-container .modal-content-container { 
225    min-height: unset !important; 
226
227 
228#autenticacao-container .modal-content-container, #autenticacao-container .modal-cmd-desc-container { 
229    display: flex; 
230    flex-direction: column; 
231    justify-content: center; 
232
233</style>