我在项目中使用角度+云端点,我想通过使用promises(它与云端点js库as written here不兼容)保持角度y。我设法用$ http调用api。
实施例
$http.get("/_ah/api/myapi/v1/mypath").success(function(data){
//edited for clarity
}).error(function () {
//edited for clarity
});
效果很好。
但是当我尝试在我的api方法中使用User参数时(我想让我的端点中有用户),我发现自己需要使用OAuth身份验证(因为通常的web.xml安全约束不会使用云端点)。
web.xml(安全约束)
<security-constraint>
<web-resource-collection>
<web-resource-name>All</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
端点示例(java)
public Person getMyself(User user) throws OAuthRequestException {
// edited for clarity
return person;
}
我想知道是否有办法验证使用angular的$ http进行的api调用,还是我真的必须使用google的端点js库(gapi)?
答案 0 :(得分:1)
您可以按照GCloud Blog和GitHub Example
中所述使用登录流程您将获得访问令牌:
var token = gapi.auth.getToken();
然后您可以按如下方式调用$http
函数:
$http({method: 'GET', url: PATH/getMyself, headers: {'Authorization': 'Bearer ' + token}});
后端:
public Person getMyself(User user) throws OAuthRequestException {
// edited for clarity
return person;
}