django - 我无法使用令牌进行此角度身份验证
问题描述
有 App x 和 App z。App x 是一个 django 应用程序。App z 是一个 Angular 应用程序。
我想要一个场景,如果从 App x 单击到 app z 的链接,则该用户的令牌与 url 一起发送,然后存储在会话存储中,并且用户数据也被获取并存储在存储中。
sessionSet(token:string) {
this.http.post('http://localhost:8000' + '/sso_api/confirm_keys/' + JSON.stringify({'token':token}),this.httpOptions)
.subscribe(data=>{
sessionStorage.clear();
sessionStorage.setItem('username', data['username']);
sessionStorage.setItem('token', data['token']);
sessionStorage.setItem('role', data['role']);
sessionStorage.setItem('user_id', data['id']);
this.router.navigate(['/mail'])
return true;
},error => {
alert('Cannot communicate with server, please try again')
return false;
})
}
这是我的 Auth Guard
export class AuthGuard implements CanActivate {
_hash:string;
constructor(private dataservice: DataService, private router: Router) {
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
if (DataService.islogin()) {
return true;
}
else {
const hash = route.queryParamMap.get('hash');
if (hash) {
if( this.dataservice.sessionSet(hash)){
return true;
}
} else {
alert("Session expired, redirecting back to app x");
window.location.replace('http://localhost:8000')
return false;
}
}
}
}
这是完成令牌验证的 django api(类似的东西)。
@csrf_exempt
@api_view(["POST"])
@permission_classes((AllowAny,))
def confirm_apis(request):
token = request.data.get("token")
print(token,"Pasted token")
try:
token= Token.objects.get(key=token)
return Response({'username':token.user.username,
'token':token.key,
'id':token.user.pk,
'role':token.user.role
},status=status.HTTP_202_ACCEPTED)
except Token.DoesNotExist:
return Response("Nothing",status=status.HTTP_403_FORBIDDEN)
我不断收到无法与我放置在角度应用程序的服务文件中的服务器错误通信(上面的第一个代码块)。
还,
statusText:“未找到” 网址:“ http://localhost:8000/sso_api/confirm_keys/%7B%22token%22:%222801b6ac5029e793fc9bdfb0a1c1f9160b2f3b97%22%7D ”
解决方案
推荐阅读
- ipfs - Is it possible to share a folder for writes and updates between different IPFS nodes?
- python - 为什么我的输出没有大写 python?
- angular - 使用 Angular 7 导航时页面未正确加载
- postman - 无法使用来自automate.io 的webhook 将表单数据发布到应用程序
- android - 我在签名的 apk 中收到错误“WebViewFactory:没有这种方法”
- javascript - javascript中的简单货币转换
- angular - 调用异步验证器时,角度服务始终未定义
- python - 如何在 Django 帖子中添加评论
- java - Spring在使用OneToMany时返回一大串数据而不是List
- nuxt.js - 如何根据nuxt中的特定页面更改标题中的项目