E-posta adreslerine JSF'ye tıklandığını onaylamak için kullanıcılara e-posta gönderebileceğiniz bir bağlantı nasıl yapılır? Yani bağlantıyı tıkladıklarında, hesapları aktif hale gelecektir.Onay linki JSF'ye e-posta gönder
9
A
cevap
17
, sen yakala olabilir @ManagedProperty
ve @PostConstruct
.
@ManagedBean
@RequestScoped
public class Activation {
@ManagedProperty(value="#{param.key}")
private String key;
private boolean valid;
@PostConstruct
public void init() {
valid = check(key); // And auto-login if valid?
}
// ...
}
ve sonra JSF Bu tam da ihtiyacım budur http://example.com/activate.jsf?key=somelonggeneratedkey
<h:panelGroup layout="block" rendered="#{activation.valid}">
<p>Your account is successfully activated!</p>
<p><h:link outcome="home">Go to home page</h:link></p>
</h:panelGroup>
<h:panelGroup layout="block" rendered="#{!activation.valid}">
<p>Activation failed! Please enter your email address to try once again.</p>
<h:form>
...
</h:form>
</h:panelGroup>
6
Sen sahip bir sayfa (ex .jsp) oluşturarak bunu uygulayabilirsiniz:
<f:view beforePhaseListener="#{userActivationController.performActivation}">
(bu facelets içindir; nitelik sadece beforePhase
olduğu jsp için). Ve sonra, yönetilen fasulye yönteminde isteği patameters elde etmek FacesContext.getCurrentContext().getExternalContext().getParameterMap()
kullanmak ve benzeri geçirilir aktivasyon kodu, olsun: Eğer JSF 2.0 zaten varsayarsak
tarafından erişilir hangi. Teşekkür ederiz +1 –
Hızlı soru. Kodun uzun ve benzersiz olması gerekiyor. Java'nın BalusC gibi uzun bir eşsiz sekans üretme yolu var mı? Java rasgele sayı üreteci garantisinin benzersiz olduğunu düşünmüyorum –
@Harry: ['java.util.UUID'] kullanın (http://download.oracle.com/javase/6/docs/api/java/util/UUID.html) : 'String uuid = UUID.randomUUID(). ToString();'. – BalusC