2010-09-07 37 views
5

Phát triển một ứng dụng web mà tôi đã đăng ký với Twitter. Trong ứng dụng này, tôi có thể có 10 danh tính Twitter khác nhau mà tôi muốn cho phép hoặc từ chối truy cập cho ứng dụng.Với Twitter oAuth ủy quyền, làm thế nào để bạn chỉ định tên người dùng twitter?

Ví dụ:

https://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback/

Nó luôn luôn chỉ mặc định là bất cứ tài khoản twitter của tôi là đăng nhập như và tôi phải chỉ định Thoát, sau đó đăng nhập bằng tài khoản mới. Nó gần giống như tôi cần một tham số chuỗi truy vấn bổ sung như

https://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback/& ForUsername = BillGates

Trả lời

1

Lưu ý rằng trong phạm vi chung của ủy quyền, người đại diện được uỷ quyền không nhất thiết phải biết danh tính của người sử dụng trên có đại diện Nó hoạt động. Nói cách khác, có thể có một triển khai trong đó ứng dụng của bạn có thể được ủy quyền để đọc luồng cập nhật Twitter, trong khi vẫn không biết danh tính thuộc dòng nào. Việc thêm thông số bạn yêu cầu sẽ là tiết lộ thông tin trong trường hợp này, vì ứng dụng của bạn sẽ cần một phần thông tin mà hệ thống được thiết kế không cung cấp.

Hoặc để đặt nó trong một ví dụ thực tế - hãy tưởng tượng một bãi đậu xe có người phục vụ, thay vì đưa cho bạn một vé đỗ xe và lấy chìa khóa xe, người hầu sẽ yêu cầu bạn cho SSN của bạn bởi vì người phục vụ đỗ xe cho người khác nữa.

+0

Tôi đã cố gắng tìm ra cách đăng xuất khỏi phiên khi truy cập trang ủy quyền. Nó có vẻ như nó không phải là kỹ thuật có thể. Cảm ơn lời giải thích. – Shane

+0

Sau khi ứng dụng của bạn được ủy quyền, bạn có thể nhận được danh tính từ API Twitter. Vì vậy, bạn có thể giữ assoiciation ủy quyền thẻ và danh tính. Bạn chỉ không thể yêu cầu ủy quyền cho danh tính cụ thể. –

+0

Đó là những gì tôi đã làm. Tôi có một bảng mà tôi lưu trữ mã thông báo yêu cầu trong khi ủy quyền, sau đó khi gọi lại, tôi kết hợp nó thông qua mã thông báo yêu cầu đó. Vì vậy, tôi sẽ biết người dùng. Cảm ơn một lần nữa. – Shane

3

Trên thực tế, bạn có thể vượt qua trong một tham số phụ với url gọi lại, như vậy:

https://api.twitter.com/oauth/authorize?oauth_token=XXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback?ForUsername=billgates 

và tham số sẽ được gửi lại cho bạn khi Twitter gọi url trở lại, như thế này:

http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback?ForUsername=billgates&oauth_token=XXX&access_token=YYY 

Bạn có thể đọc thêm về điều này trong tài liệu - http://dev.twitter.com/pages/auth:

Luôn sử dụng oauth_callback rõ ràng - Chúng tôi khuyên bạn nên chỉ định một cuộc gọi lại OAuth mặc định trong bản ghi của khách hàng , nhưng khai báo rõ ràng oauth_callback của bạn trên mỗi mã thông báo yêu cầu tìm nạp yêu cầu mà ứng dụng của bạn thực hiện. Bằng cách tự động thiết lập oauth_callback của bạn, bạn có thể vượt qua thông tin nhà nước bổ sung trở lại ứng dụng của bạn và kiểm soát kinh nghiệm tốt nhất.

Các vấn đề liên quan