[英]Azure Mobile Services native android login
我在Azure移动服务上运行一个Easy API和一个Easy Table。 这两个都要求访问身份验证。 我还设置了Google身份验证。 现在,当我尝试使用android应用程序连接到移动服务时,我获得了Google登录页面的WebView,而我已经在启动该应用程序时对用户进行了身份验证。 我遵循以下指南在android上设置身份验证,并测试将单个对象发布到表中。
这是我的身份验证和表添加代码。 使用此WebView登录后,数据也不会插入表中。 它会静默失败,没有任何错误或警告。
创建客户端。 Azure门户上没有提供API密钥,我在这里读到现在不需要。 但是SDK并未对此进行更新,因此我传递了一个空字符串。
try {
mClient = new MobileServiceClient(
"https://memoriesapp.azurewebsites.net",
"",
this
);
} catch (MalformedURLException e) {
e.printStackTrace();
}
final MobileServiceTable<Trip> mTripTable = mClient.getTable(Trip.class);
// Login using the Google provider.
ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google);
Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() {
@Override
public void onFailure(Throwable exc) {
}
@Override
public void onSuccess(MobileServiceUser user) {
Snackbar.make(findViewById(R.id.new_trip_layout),String.format(
"You are now logged in - %1$2s",
user.getUserId()), Snackbar.LENGTH_LONG);
}
});
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
mTripTable.insert(trip1).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return null;
}
}.execute();
这是我参加该活动时得到的:
听起来您正在将Azure App Service与Azure移动服务进行混合和匹配。
移动服务确实需要API密钥。 App Services不提供。
您正在指向移动服务的文档-如果您正在阅读该教程,则需要添加API密钥。 如果您不这样做,则后端将返回401未经授权,并且您很可能会被重定向到登录页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.