PDA

Просмотр полной версии : [Вконтакте] Залогиниться ВК с java-сервлета


Jarproger
09.07.2012, 13:41
У меня есть сервер на томкате\яве и таблица Users в MySQL. при первом открытии приложения пользователя нужно зарегистрировать, и при этом ПРОВЕРИТЬ со стороны сервера, действительно ли этот пользователь зашёл в приложение вк со СВОЕЙ страницы. Как бы это реализовать? Есть ли готовые классы java для залогинивания ВК с сервера?

caseyryan
09.07.2012, 14:08
Так что конкретно нужно-то? Залогинить юзера в контакт или залогинить его на свой сервер пердварительно проверив зашел ли он с настоящей страницы в контакте?
Если второе, то реализовывается просто, с помощью проверки auth_key в джава классе. Могу выложить пример кода со своего сервака, где это реализовано (если конечно нужно именно это)

Jarproger
09.07.2012, 14:34
Второе. Нужно проверить, что запрос именно с реальной страницы делается, а не откуда попало

caseyryan
09.07.2012, 21:14
У меня реализован простой статический метод:

package game;

public class VK
{
private static String API_ID = "*******"; // сюда, естественно вставить свои значения
private static String API_SECRET = "Iu1VLAghjrgOaXrgrgergKm";

public static boolean passwordIsLegal(String login, String password) {
String secretKey = MD5.encrypt(API_ID + "_" + login + "_" + API_SECRET);
System.out.println("secret key is: " + secretKey + ", and password is: " + password);
return password.equals(secretKey);
}
}


Ну и класс MD5, который тоже делал для этого сервака:


package game;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class MD5
{
public static String encrypt(String stringToHash) {
String hashtext = "";
try {
byte[] bytesOfMessage = stringToHash.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(bytesOfMessage);
BigInteger bigInt = new BigInteger(1, hash);
hashtext = bigInt.toString(16);
} catch (UnsupportedEncodingException ex) {
System.out.println("UnsupportedEncodingException exception");
} catch (NoSuchAlgorithmException ex) {
System.out.println("NoSuchAlgorithmException exception");
}
return hashtext;
}
}





В качестве пароля - auth_key контакта, в качестве логина user_id