25 #include <QMessageBox>
27 #include <SignOn/SessionData>
31 using namespace SignOn;
40 m_service =
new SignOn::AuthService();
43 connect(m_service, SIGNAL(methodsAvailable(
const QStringList &)),
44 this, SLOT(methodsAvailable(
const QStringList &)));
46 SIGNAL(mechanismsAvailable(
const QString &,
const QStringList &)),
48 SLOT( mechanismsAvailable(
const QString &,
const QStringList&)));
49 connect(m_service, SIGNAL(identities(
const QList<SignOn::IdentityInfo> &)),
50 this, SLOT(identities(
const QList<SignOn::IdentityInfo> &)));
52 qRegisterMetaType<SignOn::SessionData>(
"SignOn::SessionData");
58 if (m_identity)
delete m_identity;
61 void SignonClient::methodsAvailable(
const QStringList &mechs)
63 qDebug(
"methodsAvailable");
64 for (
int i = 0; i < mechs.size(); ++i) {
65 qDebug() << mechs.at(i).toLocal8Bit().constData() << endl;
66 m_service->queryMechanisms(mechs.at(i));
70 void SignonClient::mechanismsAvailable(
const QString &method,
71 const QStringList &mechs)
73 qDebug(
"mechanismsAvailable");
75 for (
int i = 0; i < mechs.size(); ++i) {
76 qDebug() << mechs.at(i).toLocal8Bit().constData() << endl;
80 void SignonClient::identities(
const QList<SignOn::IdentityInfo> &identityList)
83 for (
int i = 0; i < identityList.size(); ++i) {
84 qDebug() << identityList.at(i).caption().toLocal8Bit().constData() <<
93 qDebug() << response.Example();
98 qDebug(
"identity Err: %d", error.type());
99 qDebug() << error.message();
104 qDebug(
"session Err: %d", error.type());
105 qDebug() << error.message();
110 qDebug() <<
"user verified:" << valid;
115 qDebug() <<
"stored id: " << id;
120 void SignonClient::on_store_clicked()
122 qDebug(
"on_store_clicked");
123 if (m_identity)
delete m_identity;
125 QMap<MethodName,MechanismsList> methods;
127 QStringList mechs = QStringList() << QString::fromLatin1(
"ClientLogin")
128 << QString::fromLatin1(
"Example") ;
129 methods.insert(QLatin1String(
"google"), mechs);
132 methods.insert(QLatin1String(
"example"), QStringList());
134 int randomNumber = qrand() % 100;
135 m_info =
new IdentityInfo(QLatin1String(
"test_caption")
136 + QString().number(randomNumber),
137 QLatin1String(
"test_username")
138 + QString().number(randomNumber), methods);
139 m_info->setSecret(QLatin1String(
"test_secret"));
141 QStringList realms = QStringList() << QString::fromLatin1(
"google.com")
142 << QString::fromLatin1(
"example.com")
143 << QString::fromLatin1(
"example2.com");
144 m_info->setRealms(realms);
146 QStringList acl = QStringList() << QString::fromLatin1(
"AID::12345678")
147 << QString::fromLatin1(
"AID::87654321")
148 << QString::fromLatin1(
"signon::example");
149 m_info->setAccessControlList(acl);
151 int randomType = qrand() % 4;
152 switch (randomType) {
154 m_info->setType(IdentityInfo::Other);
157 m_info->setType(IdentityInfo::Application);
160 m_info->setType(IdentityInfo::Web);
163 m_info->setType(IdentityInfo::Network);
167 m_identity = Identity::newIdentity(*m_info);
175 connect(m_identity, SIGNAL(
error(
const SignOn::Error &)),
176 this, SLOT(
error(
const SignOn::Error &)));
178 m_identity->storeCredentials();
181 void SignonClient::on_query_clicked()
183 qDebug(
"on_query_clicked");
184 m_service->queryMethods();
187 void SignonClient::on_challenge_clicked()
189 qDebug(
"on_challenge_clicked");
191 error(Error(SignOn::Identity::CanceledError,
192 QLatin1String(
"Identity not created")));
197 data.setSecret(
"secret");
198 data.setExample(
"http://www.flickr.com/");
200 data.setTos(QLatin1String(
"<b>Terms of Service</b><br>"
201 "blah blaah blah hah haa"
202 "blah blaah blah hah haa"
203 "blah blaah blah hah haa"
204 "<br>Click <a href=\"%1\">"
205 "here" "! </a> to see changes."
209 data.setTos(QString());
212 m_session = m_identity->createSession(QLatin1String(
"example"));
214 connect(m_session, SIGNAL(
response(
const SignOn::SessionData &)),
215 this, SLOT(
response(
const SignOn::SessionData &)));
217 connect(m_session, SIGNAL(
error(
const SignOn::Error &)),
221 m_session->process(data, QLatin1String(
"example"));
225 void SignonClient::on_google_clicked()
227 qDebug(
"on_google_clicked");
229 error(Error(SignOn::Identity::CanceledError,
230 QLatin1String(
"Identity not created")));
233 SignOn::SessionData data;
235 data.setSecret(
"test");
236 data.setUserName(
"user@google.com");
239 m_session = m_identity->createSession(QLatin1String(
"google"));
241 connect(m_session, SIGNAL(
response(
const SignOn::SessionData &)),
242 this, SLOT(
response(
const SignOn::SessionData &)));
244 connect(m_session, SIGNAL(
error(
const SignOn::Error &)),
248 m_session->process(data , QLatin1String(
"ClientLogin"));
251 void SignonClient::on_verify_clicked()
253 qDebug(
"on_verify_clicked");
255 error(Error(SignOn::Identity::CanceledError,
256 QLatin1String(
"Identity not created")));
262 QString link(
"<a href=\"http://www.google.com\"> "
265 " or maybe you can try "
266 "<a href=\"http::/error\"> "
270 params.insert(QLatin1String(
"ForgotPassword"), link);
274 WId
id = this->window()->winId();
275 params.insert(QLatin1String(
"WindowId"), (quint32)
id);
276 m_identity->verifyUser(params);