我使用 django-rest-framework-simplejwt
进行身份验证。当用户通过reactjs登录时,如何检索登录用户的信息
例如,如果我想将其显示为
欢迎 request.user.username #wrong 我知道。
我对“stackoverflow”和“github”都做了一些研究,但我找不到任何符合我要求的东西,或者我可能在检索用户信息时考虑错了。 你有什么例子可以推荐吗?
后端;
视图.py
class MyTokenObtainPairView(TokenObtainPairView):
serializer_class = MyTokenObtainPairSerializer
Serializer.py
class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
@classmethod
def get_token(cls, user):
token = super().get_token(user)
token['is_superuser'] = user.is_superuser
return token
urls.py
urlpatterns = [
#...
path('api/token/', TokenRefreshView.as_view(), name='token_refresh'),
]
正面
Axios.js
const baseURL = 'http://127.0.0.1:8000/api';
const axiosInstance = axios.create({
baseURL: baseURL,
timeout: 5000,
headers: {
Authorization: localStorage.getItem('access_token')
? 'JWT ' + localStorage.getItem('access_token')
: null,
'Content-Type': 'application/json',
accept: 'application/json',
},
});...
登录.js
const handleSubmit = (e) => {
e.preventDefault();
console.log(formData);
axiosInstance
.post(`token/`, {
email: formData.email,
password: formData.password,
})
.then((res) => {
localStorage.setItem('access_token', res.data.access);
localStorage.setItem('refresh_token', res.data.refresh);
axiosInstance.defaults.headers['Authorization'] =
'JWT ' + localStorage.getItem('access_token');});...
我的最后一个问题是如何用记录的类别填充类别下拉菜单,以便在创建帖子时选择类别?
(我只需要一些示例链接的建议)
class Post(models.Model):
category = models.ForeignKey('category', on_delete=models.CASCADE))
title= models.CharField(max_length=20)
...