You need to sign in to do that
Don't have an account?
ms-hase-q23ee
ユーザーチェックを行うAPIは?
お世話になっております、アプリの中で、ユーザ認証を2度行いたいのですが、どのAPIを使用すればよいか分かる方はいらっしゃいますか?
現在はUserオブジェクトからユーザー名の存在チェックのみ行っているのですが、下のようなコードが書ければ、と考えています
宜しくお願いします
public login(String userId, String passwd) {
int result = xxxx.login(userId,pass);
if (result == VALID_USER) {
debug('このユーザーは正常です');
} else {
debug('入力されたユーザー名またはパスワードが間違っています');
}
}
現在はUserオブジェクトからユーザー名の存在チェックのみ行っているのですが、下のようなコードが書ければ、と考えています
宜しくお願いします
public login(String userId, String passwd) {
int result = xxxx.login(userId,pass);
if (result == VALID_USER) {
debug('このユーザーは正常です');
} else {
debug('入力されたユーザー名またはパスワードが間違っています');
}
}
こんにちは。
山﨑と申します。
実際に開発経験があるわけではありませんが、
ユーザ名とパスワードによる認証はこちらが参考になるかもしれません。
http://www.salesforcegeneral.com/salesforce-articles/salesforce-re-enter-passwords-to-verify-users-login.html
Apex コードをこちらにも転記します。
doVerify() を少し変更して、username と password を受け取る形にすれば良いかと。
(ご提示いただいたサンプルコードですと userId を引数に取っているので、ご期待に沿えなかったらすみません)
上記を変更してこんな感じで書きたいのですが、※にあたる部分を知っている方は居ますでしょうか?
public login(String userId, String passwd) {
PageReference result = Site.login(userId,pass);
if (このページリファレンスが正常なログイン後のページを示している == true) { // ※
debug('このユーザーは正常です');
} else {
debug('入力されたユーザー名またはパスワードが間違っています');
}
}
Site.login() ですとこのあたりを参考にされてはいかがでしょうか。
http://blogbloggerbloggesta.blog.fc2.com/blog-entry-30.html
http://salesforce.stackexchange.com/questions/19364/authenticate-users-on-salesforce-communities
また、Site クラスのリファレンスは
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_sites.htm#apex_System_Site_login
このあたりを見ていると、Site.login() は
・ログインに成功すると第3引数に指定した URL にリダイレクトするための PageReference オブジェクトを返す
・ログインに失敗すると null を返す
ので、他の方もされているように
でどうでしょうか。
(ただ、リファレンスには書いていないが...ということは多々あります。。。)
「REST API から呼び出している」というのは、@RestResource アノテーションを使っているということでしょうか?
また、直接実行した場合は正常に動くことは確認済みでしょうか?